java – JSTL字符串比较总是返回false

前端之家收集整理的这篇文章主要介绍了java – JSTL字符串比较总是返回false前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试字符串比较
<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文件中.

原文链接:https://www.f2er.com/java/123943.html

猜你在找的Java相关文章