org.apache.jasper.JasperException: /company.jsp(2,0) The absolute uri: http:

本文介绍了解决MyEclipse项目部署到Linux环境下因缺少jstl.jar而导致的问题。提供了两种解决方案:一是直接将jstl包导入项目;二是将jstl包放置到Tomcat的lib目录下。

将myeclipse的项目部署到linux下时报错,原因是因为myeclipse默认编译会加载jar包到本地tomcat,但是部署到服务器就会缺少jar包:jstl.jar;


解决办法 2种:

1:直接将jstl包导入项目

2: 将jstl包放到tomcat下的lib下

在Spring Boot项目中,启动时报错`org.apache.jasper.JasperException: Cannot resolve absolute URI "http://java.sun.com/jsp/jstl/core"`,通常与JSP中使用的JSTL标签库无法正确解析有关。此问题的根源在于缺少JSTL实现库,或者TomcatJSP引擎(Apache Jasper)无法识别该URI。 ### 问题原因分析 1. **缺少JSTL依赖**:如果项目中使用了JSP并包含JSTL标签(如`<c:if>`、`<c:forEach>`等),但未正确引入`javax.servlet.jsp.jstl`相关的依赖,将导致JSP编译失败。 2. **JSP运行环境配置问题**:Spring Boot默认使用嵌入式的Tomcat服务器,但嵌入式Tomcat可能未包含完整的JSP支持,尤其是在某些版本中缺少`jasper-el`或`tomcat-jasper`组件。 3. **JSTL URI映射错误**:旧版本的TomcatJSP实现可能无法正确映射JSTL的URI,尤其是当使用`http://java.sun.com/jsp/jstl/core`而不是`http://jakarta.ee/xml/ns/jsp/jstl/core`时(适用于Jakarta EE 9+)。 ### 解决方案 #### 1. 添加JSTL依赖 如果使用的是Maven项目,确保在`pom.xml`中包含以下依赖: ```xml <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> ``` 如果是Gradle项目: ```groovy implementation 'javax.servlet:jstl:1.2' ``` 此外,为了确保JSP能够正常运行,还需添加TomcatJSP支持依赖: ```xml <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> ``` #### 2. 启用JSP支持(适用于嵌入式Tomcat) 确保Spring Boot项目中JSP支持被正确启用。可以在`application.properties`中添加: ```properties spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp ``` 同时,确保JSP文件放置在`src/main/resources/META-INF/resources/WEB-INF/jsp/`路径下。 #### 3. 修改JSTL URI(适用于Jakarta EE 9+) 从Jakarta EE 9开始,JSTL的命名空间从`http://java.sun.com/jsp/jstl/core`变更为`http://jakarta.ee/xml/ns/jsp/jstl/core`。因此,JSP文件中的标签库声明应更新为: ```jsp <%@ taglib prefix="c" uri="http://jakarta.ee/xml/ns/jsp/jstl/core" %> ``` #### 4. 检查Tomcat版本兼容性 如果使用的是外部Tomcat部署Spring Boot项目,确保Tomcat版本与JDK版本兼容。例如,Tomcat 7不完全支持JDK 8,建议升级到Tomcat 8或更高版本。 ### 示例代码 以下是一个典型的JSP页面示例,展示了如何正确引入JSTL并使用`<c:forEach>`标签: ```jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://jakarta.ee/xml/ns/jsp/jstl/core" %> <html> <head> <title>JSTL Example</title> </head> <body> <h1>Items:</h1> <ul> <c:forEach var="item" items="${items}"> <li>${item}</li> </c:forEach> </ul> </body> </html> ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值