关于springmvc.....model.addAttribute()之后jsp页面c:foreach取不到的问题

本文探讨了在使用model.addAttribute()后,JSP页面通过c:foreach无法获取数据的问题,并提供了详细的解决方案,包括配置Eclipse、修改web.xml及指定正确的Servlet版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天遇到一个问题是,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"> 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值