You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring MVC+JSP开发遇isELIgnored警告及EL表达式解析错误求助

解决JSP EL表达式报错及Eclipse警告问题

1. 修正项目Servlet版本配置

Eclipse提示“Undefined attribute name "isELIgnored"”,核心原因是项目Servlet版本设置过低(Servlet 2.3及更早版本没有isELIgnored属性)。按以下方式调整:

  • 打开项目web.xml,确保根节点web-app使用Servlet 2.4及以上规范的命名空间,示例:
    <web-app 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"
             version="2.4">
    
  • Maven项目需在pom.xml中指定正确的Servlet API依赖版本(至少2.4):
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>
    
  • 刷新Eclipse项目:右键项目→Maven→Update Project(Maven项目),或右键项目→Properties→Project Facets,确认Dynamic Web Module版本对应Servlet 2.4+。

2. 检查并修正EL表达式语法

报错javax.el.ELException: Failed to parse the expression [${...}]说明EL表达式存在语法问题,常见情况:

  • 表达式内有多余空格,比如你写的${name }需改为${name}
  • 变量名拼写错误或引用了未定义的变量
  • 使用了EL不支持的运算符或语法结构

先把所有EL表达式修正为标准格式,再重新测试。

3. 全局配置启用EL(替代页面级设置)

无需在每个JSP页面添加<%@ page isELIgnored="false" %>,直接在web.xml中全局开启EL支持,所有JSP默认会解析EL:

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <el-ignored>false</el-ignored>
    </jsp-property-group>
</jsp-config>

4. 排查Servlet容器依赖冲突

确保使用的Servlet容器(如Tomcat)版本匹配Servlet规范:

  • Tomcat 5.5对应Servlet 2.4,Tomcat 6对应Servlet 2.5,Tomcat 7+对应Servlet 3.0+,这些版本均原生支持EL
  • 不要在项目中自行引入el-api.jar等EL相关依赖,容器本身已提供,重复引入会导致类加载冲突

内容的提问来源于stack exchange,提问作者PS078

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 23:55:18