日期:2014-05-16  浏览次数:20406 次

JSTL 的 if else : 有 c:if 没有 else 的处理

jstl的c:if 没有else


想要实现if...else...:

?

?

可以用下面的解决

?

--------------------------------

?

结构:


<c:choose>

? ?<c:when test="">? ? 如果
? ?</c:when>
? ?
? ?<c:otherwise>??否则
? ?</c:otherwise>
??
</c:choose>

?

?

代码:

?

<c:choose>

??? <c:when test="${sessionScope.USERTYPE == 'inner'}">

????? <c:set value="${context_root}/igmgr/MEB004.dow" var="action" scope="page"/>

??? </c:when>

??? <c:when test="${sessionScope.USERTYPE == 'merc'}">

????? <c:set value="${context_root}/igmgr/MEB021.dow" var="action" scope="page"/>

??? </c:when>??

?? <c:otherwise>??

????? <c:set value="${context_root}/igmgr/MEB020.dow" var="action" scope="page"/>

???</c:otherwise>

? </c:choose>

?

-------------------------------------

?

?

附:详解+代码

?

?

在同一个 <c:choose> 中,当所有 <c:when> 的条件都没有成立时,则执行 <c:otherwise> 的本体内容。

  语法

  <c:otherwise>

  本体内容

  </c:otherwise>

  属性

  无

  限制

  ·<c:otherwise> 必须在 <c:choose> 和 </c:choose>之间

  ·在同一个 <c:choose> 中时,<c:otherwise> 必须为最后一个标签

  说明

  在同一个 <c:choose> 中,假若所有 <c:when> 的test属性都不为true时,则执行 <c:otherwise> 的本体内容。

  范例

  笔者举一个典型的 <c:choose>、<c:when>和<c:otherwise>范例:

  <c:choose>

  <c:when test="${condition1}">

  condition1为true

  </c:when>

  <c:when test="${ condition2}">

  condition2为true

  </c:when>

  <c:otherwise>

  condition1和condition2都为false

  </c:otherwise>

  </c:choose>

  范例说明:当condition1为true时,会显示“condition1为true”;当condition1为false且 condition2为true时,会显示“condition2为true”,如果两者都为false,则会显示“condition1和 condition2都为false”。

  注意

  假若condition1和condition2两者都为true时,此时只会显示"condition1为true",这是因为在同一 个<c:choose>下,当有好几个<c:when>都符合条件时,只能有一个<c:when>成立。