加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 17:47:46 所属栏目:Java 来源:网络整理
导读:我正在尝试字符串比较 c:if test="${dept eq 'account'}"/c:if 但这总是返回false.我检查dept变量的值为“account”.我也试过这样 c:if test="${dept == 'account'}"/c:if 这也返回false. 但是如果我使用像这样的java代码,那么它工作正常 %if(dept.equals("a
我正在尝试字符串比较
<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文件中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读