我在JSP中声明如下:
<% String fname = "abcd" %>
<c:if test="${not empty fname}">
<% out.println("not empty"+fname); %>
</c:if>
<c:if test="${empty fname}">
<% out.println(" empty"+fname); %>
</c:if>
Run Code Online (Sandbox Code Playgroud)
在它显示的页面中 - emptyabcd - >表示它转到第二个if(非空),即使fname有值.任何想法为什么?
JSTL不读取scriptlet中定义的页面变量 - 这两个样式是分开的,不能很好地协同工作.
代替
<% String fname = "abcd" %>
Run Code Online (Sandbox Code Playgroud)
你需要这样的东西:
<c:set var="fname" value="abcd"/>
Run Code Online (Sandbox Code Playgroud)
如果必须使用scriptlet,则需要在JSTL读取之前将变量添加到页面上下文中:
<%
pageContext.setAttribute("fname", "abcd");
%>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4642 次 |
最近记录: |