我正在尝试字符串比较
<c:if test="${dept eq 'account'}"></c:if>
但这总是返回false.我检查dept变量的值为“account”.我也试过这样
<c:if test="${dept == 'account'}"></c:if>
这也返回false.
但是如果我使用像这样的java代码,那么它工作正常
<% if(dept.equals("account")){ blah blah blah } %>
任何帮助将非常感激.
谢谢
解决方法
症状表明您已经在scriptlet范围内声明它,而不是EL范围. Scriptlets和EL不具有相同的范围. EL使用封面
PageContext#findAttribute()
来解析变量.将dept放在页面,请求,会话或应用程序范围之一中.选择哪一个取决于部门本身的唯一目的.我将从请求范围开始.例如.在一个servlet中:
request.setAttribute("dept",dept);
这样就可以通过${dept}在EL中获得.
毕竟,最好是避免使用scriptlet completely. Java代码属于Java类,而不是在JSP文件中.