之前一直是没搞懂为啥,jsp界面里面就那不到。感觉自己的代码没毛病啊,配置什么的也都没有问题。最后各种排查,终于找到解决的方案。
第一步:
排查在pom.xml文件中关于javax.servlet这一块配置没有
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
<version>3.1.0</version>
</dependency>
其次查看是否modelMap里面存入了我们所需要的值
最后:实在不行了就是一波大招了
在jsp的界面添加
<%@ page isELIgnored="false"%>
加了以后
总结原因
在web.xml的<jsp-property-group>中可以控制一组JSP是否使用EL,在每个JSP中也可以指定是否该JSP使用EL。在page directive中的isELIgnored属性用来指定是否忽略。格式为:
<%@ page isELIgnored="true|false"%>
如果设定为真,那么JSP中的表达式被当成字符串处理,Web容器默认isELIgnored="false"。
但是
web.xml有些版本不一样,默认是true,所以会导致
EL表达式无法被解析到. 后台的数据成功的传了过来,然而前台JSP页面EL表达式无效,解析不到EL表达式,被当成字符串处理。
最终的幕后黑手:web.xml
<%@page isELIgnored=“false”%>的优先级要高于web.xml中的设置,所以在JSP中的设置会盖掉web.xml中的设置.