c:out标签OutTag处理类未在Java Build Path找到报错排查
报错场景
Java Web开发时出现编译报错:Java Build Path中未找到c:out对应的标签处理类org.apache.taglibs.standard.tag.rt.core.OutTag,已将JSTL、standard相关jar包放入WEB-INF/lib目录后报错未消除。
排查解决步骤
- 校验jar包版本匹配性
JSTL 1.2及以上版本无需单独引入standard.jar,仅需引入javax.servlet.jsp.jstl-api及对应实现包即可;JSTL 1.1及更低版本需保证jstl.jar与standard.jar版本完全一致,禁止跨版本混用。 - 手动将jar包关联到项目编译路径
仅将jar包放入WEB-INF/lib目录不会自动加入项目Build Path,需手动配置:- 右键项目选择
Build Path -> Configure Build Path - 切换到
Libraries标签页,点击Add JARs,选中项目WEB-INF/lib下所有JSTL相关jar包完成添加 - 切换到
Order and Export标签页,勾选刚添加的所有JSTL相关jar包,点击Apply and Close保存配置
- 右键项目选择
- 清理IDE缓存重新编译
IDE缓存失效也会导致类识别异常:- Eclipse用户点击顶部菜单
Project -> Clean,选中对应项目执行清理重编译 - IDEA用户点击
File -> Invalidate Caches...,确认清除缓存后重启IDE即可
- Eclipse用户点击顶部菜单
- 校验JSP页面标签库声明
确保JSP头部c标签引入的uri路径正确,正确写法为:
禁止使用旧版错误路径<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>http://java.sun.com/jstl/core(路径缺少/jsp段,会导致标签类映射失败)。 - 排查容器类加载冲突
如果Tomcat等Web容器的全局lib目录下存在手动放入的其他版本JSTL包,会和项目WEB-INF/lib下的包产生类加载冲突,删除容器lib目录下非自带的JSTL相关包,仅保留项目内的正确版本包即可。
内容的提问来源于stack exchange,提问作者ANURAG MOHAPATRA
相关产品推荐
相关产品推荐

