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

JSP页面无法使用JSTL库,报JstlCoreTLV类加载实例化错误如何解决?

错误原因

Tomcat 10.x版本开始全面使用Jakarta EE规范,原有Java EE的javax.*包名全部变更为jakarta.*。你当前项目引入的是适配旧版javax.*规范的JSTL实现,其内部依赖javax.servlet.jsp.tagext.TagLibraryValidator类,和Tomcat 10提供的jakarta.servlet.jsp.tagext.TagLibraryValidator不属于同一个类,加载时就会触发错误栈中的类转换异常,导致JSTL标签库校验器初始化失败。

修复步骤
  • 移除项目中所有旧版JSTL相关依赖,包括传统的jstl.jar、standard.jar,如果是Maven项目需删除所有groupId为javax.servlet.jsp.jstl的依赖配置。
  • 引入适配Jakarta EE规范的JSTL 2.0+版本依赖,Maven项目可直接添加如下配置:
<dependency>
    <groupId>jakarta.servlet.jsp.jstl</groupId>
    <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
    <version>2.0.0</version>
</dependency>
<dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>jakarta.servlet.jsp.jstl</artifactId>
    <version>2.0.0</version>
</dependency>

普通Web项目可直接下载对应Jakarta版本的JSTL实现包,放入项目的WEB-INF/lib目录即可。

  • 检查JSP页面的taglib声明,核心标签库的引入无需修改uri,沿用原有声明即可:
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  • 清理项目编译缓存,重新打包部署到Tomcat 10即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:06:00