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

Maven项目引入JSTL1.2报JasperException:无法解析jstl/core uri如何解决

解决方案

1. 修正pom.xml依赖配置

你原本的servlet、jsp-api依赖配置没有问题,保留即可,仅需要确认jstl依赖没有配置provided作用域即可,正确的完整依赖配置如下:

<!-- 原有servlet依赖 无需修改 -->
<dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>javax.servlet-api</artifactId>
   <version>4.0.1</version>
   <scope>provided</scope>
</dependency> 

<!-- 原有jsp-api依赖 无需修改 -->
<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>javax.servlet.jsp-api</artifactId>
    <version>2.3.3</version>
    <scope>provided</scope>
</dependency>

<!-- 保留该jstl依赖即可,无需额外添加standard依赖,JSTL1.2已内置实现类和TLD文件 -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

注意不要给jstl依赖加provided作用域,绝大多数应用服务器(如Tomcat)默认不自带JSTL实现,需要将JSTL包随项目一起打包部署。

2. 检查部署包是否包含JSTL依赖

90%以上该类报错都是因为IDE部署时没有将JSTL包打入项目的WEB-INF/lib目录,以IDEA为例修复步骤:

  • 打开 File -> Project Structure -> Artifacts
  • 找到你当前部署的war/exploded包,展开查看 WEB-INF/lib 目录
  • 如果没有看到jstl-1.2.jar,右键点击左侧「Available Elements」下的jstl依赖,选择「Put into WEB-INF/lib」
  • 保存配置后重新部署项目即可

3. 额外排查点

  • JSTL1.2无需在web.xml中额外配置taglib映射,jar包自带的TLD文件会被自动识别,你当前的web.xml配置不需要修改
  • 执行mvn clean install清理旧的编译缓存,重新构建项目
  • 若仍报错可尝试清空IDE缓存后重启:IDEA选择 File -> Invalidate Caches... 后重启IDE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:12:02