JSTL字符串比较总是返回false
我想字符串比较JSTL字符串比较总是返回false
<c:if test="${dept eq 'account'}"></c:if>
但这总是返回false
。我检查部门变量的值为'account'
。我也试过这样
<c:if test="${dept == 'account'}"></c:if>
这也返回false
。
但是,如果我用Java代码这样即可正常工作
<%
if(dept.equals("account")){
blah blah blah
}
%>
任何帮助将非常感激。
感谢
症状表明,你已经宣布它在小脚本范围,而不是在EL范围。 Scriptlets和EL不具有相同的范围。 EL使用PageContext#findAttribute()
来解决变量。将dept
放在页面,请求,会话或应用程序范围之一中。选择哪一个取决于dept
本身的唯一目的。我会从请求范围开始。例如。在一个servlet:
request.setAttribute("dept", dept);
这样它会提供EL通过${dept}
。
毕竟,最好是避免使用scriptletscompletely。 Java代码属于Java类,不属于JSP文件。
非常棒!这是一个完美的答案。非常感谢您的时间。这工作正常。我认为EL无法在任何范围内找到部门变量。只要我把它放在请求范围内,它就能正常工作。 – user509755 2010-11-16 18:13:33
不客气。 – BalusC 2010-11-16 18:14:47
你是什么意思的“返回false”。你确定你的''标签实际上正在执行吗? –
skaffman
2010-11-16 16:44:34