關於springmvc.....model.addAttribute()之後jsp頁面c:foreach取不到的問題
今天遇到一個問題是,model.addAttribute()之後jsp頁面c:foreach取不到的問題
而斷點除錯顯示model資料已經傳遞進去,而在jsp頁面卻去不動。
後來才知道原因是:
頁面識別不了el表示式,${}是el表示式,jsp預設支援,
解決方式:
1、eclipse版本問題,isELIgnored預設是true,改成<%@ page isELIgnored="false" %>
2、web.xml中加上
3、如果在web.xml中約束為以下內容<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <el-ignored>false</el-ignored> </jsp-property-group> </jsp-config>
<!--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.xml以上設定也不支援EL表示式:<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">
解決方法:
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">