我正在尝试与
进行字符串比较<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
}
%>
任何帮助都会非常感激。
由于
答案 0 :(得分:13)
症状表明您已在 scriptlet 范围内声明它,而不是在EL范围中声明它。 Scriptlets 和EL不共享相同的范围。 EL使用封面PageContext#findAttribute()
来解析变量。将dept
放在页面,请求,会话或应用程序范围之一中。选择哪一个取决于dept
本身的唯一目的。我从请求范围开始。例如。在servlet中:
request.setAttribute("dept", dept);
这样,${dept}
就可以在EL中找到它。
毕竟,最好是避免使用 scriptlet completely。 Java代码属于Java类,而不属于JSP文件。