今天遇到一个问题是,model.addAttribute()之后jsp页面c:foreach取不到的问题
而断点调试显示model数据已经传递进去,而在jsp页面却去不动。
后来才知道原因是:
页面识别不了el表达式,${}是el表达式,jsp默认支持,
解决方式:
1、eclipse版本问题,isELIgnored默认是true,改成<%@ page isELIgnored="false" %>
2、web.xml中加上
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>false</el-ignored>
</jsp-property-group>
</jsp-config>
3
、如果在web.xml中约束为以下内容
<!--CTYPE web-app PUBLIC </sp-->
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
表示Servlet 2.3 / jsp 1.2
在默认情况下,Servlet2.3/jsp1.2是不支持EL表达式的,而Servlet2.4/jsp 2.0支持。
所以只需将约束改为:
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
如果web.xml以上设置也不支持EL表达式: 解决方法:
1.修改web.xml文件为(Servlet 2.4 / JSP 2.0)
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd">