<c:choose> 操作的语法
<c:choose>
<c:when test="expression">
body content
</c:when>
<c:when test="expression">
body content
</c:when>
...
<c:otherwise>
body content
</c:otherwise>
</c:choose>
注意:每个要测试的条件都由相应的 <c:when> 标记来表示,至少要有一个 <c:when> 标记。只会处理第一个其 test 值为 true 的 <c:when> 标记体内的内容。如果没有一个 <c:when> 测试返回 true ,那么会处理 <c:otherwise> 标记的主体内容。注:尽管如此, <c:otherwise> 标记却是可选的; <c:choose> 标记至多可有一个嵌套的 <c:otherwise> 标记.
<----------------------------------------------------------------------->
<c:choose>
<c:when test="${opreateType == 'add'}">
<c:set var="url" value="${ctx}/temp/add.do"></c:set>
<c:set var="z" value="5"></c:set>
</c:when>
<c:when test="${opreateType == 'add'}">
<c:set var="url" value="${ctx}/temp/update.do"></c:set>
</c:when>
</c:choose>
上述代码会调用2次getOpreateType(). 但是奇怪的是:即使第一次<c:when>的test为true, 仍然会调用一次getOpreateType()(即第二个<c:when>的test, 这里我设置2个测试条件一样, 经过调试设置断点显示的运行此时). 不过, 即使第二次<c:when>的test也为true,但是却不执行第二个<c:when></c:when>之间的代码.
这是什么机制来的, 源码就不想看了. 还是用 : ? 运算符好了.
分享到:
相关推荐
◎ JSTL的基本概念、安装与配置 ◎ JSTL的通用标记:<c:out>、<c:set>、<c:remove>和<c:catch>标记...◎ 条件处理标记:<c:if>、<c:choose>、<c:when>和<c:otherwise>标记 ◎ 循环标记:<c:forEach>和<c:forTokens>标记
EL表达式 (详解) EL表达式 1、EL简介 1)语法结构 ${expression} 2)[]与.... EL 提供.... 当要存取的属性名称中包含一些特殊...=或ne、<或lt、>或gt、<=或le、>=或ge 3.逻辑运算符有三个:&&或and、||或or、!或not ...
stl的配置方法:<br>1、将jstl.jar和standard.jar拷贝到web-inf/lib下即可(如只使用EL表达式,无需引用这两个包)<br><br>2、在jsp页面头部引入taglib方法如下:<br> <%@ taglib prefix="c" uri=...
<c:choose> <c:when test="${pageIndex eq pageNumber}"> <option value="${pageIndex}" selected="selected">${pageIndex}</option> </c:when> <c:otherwise> <option value="${pageIndex}">${pageIndex...
<c:choose> <c:when test="${page.pageNow - 1 > 0}"> <a href="findNewsPage.service?pageNow=${page.pageNow - 1}">上一页</a> </c:when> <c:when test="${page.pageNow - 1 <= 0}"> <a href=...
:<pg:pager url="oa/module!getModules" items="${total}" maxPageItems="10" export="currentPageNumber=pageNumber"> <pg:param name="pid"/> <pg:first> <a href="${pageUrl}">首页</a> </pg:first> <pg:...
用于复杂判断的 <c:choose>?、 <c:when>?、 <c:otherwise>?标签? 用于循环的 <c:forEach>?标签 用于分隔字符的 <c:forTokens>?标签? 用于包含页面的 <c:import> 用于得到 URL?地址的 <c:url>?标签? 用于页面...
</c:choose> <c:url value="/StudentSer" var="nextPage"> <c:param name="status" value="splitPage"/> <c:param name="currentPage" value="${sessionScope.currentPage+1}" /> ...
<c:choose> <c:when test="${currentUser.flag==1 }"> <li><a href="${pageContext.request.contextPath}/student!list">学生信息管理</a></li> <li><a href="${pageContext.request.contextPath}/exam!list">...
5.2.3、第三种Scriptlet:<%=%> 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态...
5.2.3、第三种Scriptlet:<%=%> 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态...
5.2.3、第三种Scriptlet:<%=%> 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态...
5.2.3、第三种Scriptlet:<%=%> 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态...
5.2.3、第三种Scriptlet:<%=%> 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态...
5.2.3、第三种Scriptlet:<%=%> 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态...
5.2.3、第三种Scriptlet:<%=%> 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态...
5.2.3、第三种Scriptlet:<%=%> 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态...
<xsl:choose> <xsl:when test="testng:isFilterSelected('CONF') = 'true'"> .testMethodStatusCONF { } </xsl:when> <xsl:otherwise> .testMethodStatusCONF { display: none; } </xsl:otherwise> ...
1.关键字:JSTL标签、<c:choose>、<c:forEach>、<c:forTokens>、<c:if>、<c:import>、<c:otherwise>、<c:out>、<c:param>、<c:redirect>、<c:remove>、<c:url>、<c:when>、<c:set>、<c:catch>
功能介绍:<br/> 为网页编程人员提供能够自动生成验证码图像并验证网页访问者输入的Web控件,具体功能如下:<br/>1. 提供简单易用的设计时所见即所得的可视化设置方式,并且支持设计时验证码图像效果与特效属性设置...