我有一个jsp文件,其中包含如下标记:
<%@ taglib prefix="abc" uri="/WEB-INF/tlds/xyz.tld" %>在我的应用程序中,部署结构是:
WEB-INF
|-lib
|-some.jar
|-META-INF
|-resources
|-WEB-INF
|-tlds
|-xyz.tld这在Tomcat7中运行得很好,但是当我将我的应用程序部署到JBoss as 7时,它找不到tld文件。
那么,这是JBoss的问题吗(不支持Servlet3.0?)或者只是不能从jar中的META-INF\resources\WEB-INF目录访问tld文件?
发布于 2014-12-04 10:18:27
这不是Servlet 3.0的问题,而是JSP 2.2的问题。(它们是不同的规范)。
标记库声明的uri部分不是位置。它是一个键,必须与
<uri>your/tld/uri</uri>元素在tld文件中。
如果缺少此元素,则必须在web.xml的标记库映射中声明它,并在其中提供uri:
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/tlds/xyz.tld</taglib-uri>
<taglib-location>/WEB-INF/lib/some.jar/META-INF/resources/WEB-INF/tlds/xyz.tld</taglib-location>
</taglib>
</jsp-config>https://stackoverflow.com/questions/25739728
复制相似问题