我正在尝试字符串比较
<c:if test="${dept eq 'account'}"></c:if>
Run Code Online (Sandbox Code Playgroud)
但这总是会回归false.我检查dept变量是否有值'account'.我也是这样试过的
<c:if test="${dept == 'account'}"></c:if>
Run Code Online (Sandbox Code Playgroud)
这也回来了false.
但是,如果我使用这样的java代码,那么它工作正常
<%
if(dept.equals("account")){
blah blah blah
}
%>
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激.
谢谢
Bal*_*usC 13
症状表明您已在scriptlet范围内声明它,而不是在EL范围中声明它.Scriptlet和EL不共享相同的范围.EL使用封面PageContext#findAttribute()来解决变量.放入dept页面,请求,会话或应用程序范围之一.选择哪一个取决于其dept自身的唯一目的.我从请求范围开始.例如在servlet中:
request.setAttribute("dept", dept);
Run Code Online (Sandbox Code Playgroud)
这样它就可以在EL中使用了${dept}.
毕竟,最好是避免完全使用scriptlet .Java代码属于Java类,而不属于JSP文件.
| 归档时间: |
|
| 查看次数: |
13949 次 |
| 最近记录: |