springboot报com.sun.el.ExpressionFactoryImpl not found

springboot报com.sun.el.ExpressionFactoryImpl not found


springboot中使用jsp页面时要添加必要的依赖

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <scope>provided</scope>
    </dependency>
    <!-- 添加jstl标签库依赖模块 -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>
    <!--添加tomcat依赖模块.-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <!-- 使用jsp引擎,springboot内置tomcat没有此依赖 -->
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.glassfish.web</groupId>
        <artifactId>el-impl</artifactId>
        <version>2.2</version>
    </dependency>

这个依赖的缺失就是报错的原因 缺少el表达式

org.glassfish.web
el-impl
2.2

加上之后问题解决

### 解决 `javax.el.ELException` 异常 当遇到 `via classloader javax.el.ELEception Provider com.sun.el.ExpressionFactoryImpl not found` 的错误时,这通常意味着应用程序无法找到所需的 EL(Expression Language)表达式工厂实现类。此类问题可能由多种原因引起。 #### 可能的原因及解决方案 1. **缺少依赖库** 如果项目中缺失必要的 JAR 文件,则可能会导致此问题。确保项目的构建文件(如 Maven 或 Gradle 配置文件)包含了正确的依赖项。对于基于 Java EE 应用程序来说,应该引入 Mojarra 或 Apache EL 实现作为替代方案[^1]。 2. **版本冲突** 不同版本之间的不兼容也可能引发该异常。检查是否有多个不同版本的 EL API 和实现存在于classpath下,并尝试移除不必要的重复条目以消除潜在冲突[^2]。 3. **容器自带支持** 某些应用服务器已经内置了对 JSF/EL 的支持,在这种情况下不需要额外添加这些库到 Web 应用程序内部;相反地这样做反而会造成干扰。确认所使用的 Servlet 容器是否已提供了相应的功能并调整部署方式相应地适应它[^3]。 4. **配置不当** 对于某些框架而言,还需要适当设置来启用特定的功能模块。例如 Spring Boot 中可以通过修改 application.properties 来指定使用哪个 EL 提供商: ```properties spring.expression-language.provider=spel ``` 如果上述方法都不能解决问题,可以考虑升级 JDK 版本或更换其他更稳定的 EL 表达式解析引擎提供商。 ```xml <!-- Maven Dependency --> <dependency> <groupId>org.glassfish</groupId> <artifactId>jakarta.el</artifactId> <version>4.0.0</version> </dependency> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值