Pet*_*rs_ 5 java jsp jstl scriptlet
在jstl中使用scriptlet变量的正确方法是什么?我不知道我的代码有什么问题:
<%
boolean a = true;
boolean b = false;
%>
<c:choose>
<c:when test="${a}">
<c:set var="x" value="It's true"/>
</c:when>
<c:when test="${b}">
<c:set var="x" value="It's false"/>
</c:when>
</c:choose>
Run Code Online (Sandbox Code Playgroud)
看起来它并没有进入整个区块.
在JSTL中无法看到scriptlet中的变量,因为在JSTL中使用的表达式语言${}将在页面,请求,会话或应用程序中查找属性.您必须至少将scriptlet中的变量存储在其中一个范围中,然后使用它.
这是一个例子:
<%
boolean a = true;
request.setAttribute("a", a);
%>
<c:if test="${a}">
<c:out value="a was found and it's true." />
</c:if>
Run Code Online (Sandbox Code Playgroud)
更多信息:
作为建议,请停止使用scriptlet.将JSP中的业务逻辑移动到控制器,将视图逻辑移动到EL,JSTL和其他标签中<display>.更多信息:如何避免JSP文件中的Java代码?
| 归档时间: |
|
| 查看次数: |
14546 次 |
| 最近记录: |