在jsp页面引入了自定义的TLD文件的时候,碰到了一个错误
Invalid tld file: “/WEB-INF/tags/xxxt.tld”, see JSP 2.2 specification section 7.3.1 for more details
错误原因
不符合 JSP2.2 中对tags的规定。
规定说的是这个:
In the jsp-2_2
JSP.7.3.1 Identifying Tag Library Descriptors Tag library descriptor files have names that use the extension .tld, and the extension indicates a tag library descriptor file. When deployed inside a JAR file, the tag library descriptor files must be in the META-INF directory, or a subdirectory of it. When deployed directly into a web application, the tag library descriptor files must always be in the WEB-INF directory, or some subdirectory of it. TLD files should not be placed in /WEB-INF/classes or /WEB-INF/lib, and must not be placed inside /WEB-INF/tags or a subdirectory of it, unless named implicit.tld and intended to configure an implicit tag library with its JSP version and tlib-version.
the .tld file can’t be in classes , lib ,tags folder or subfolder.
意思是说,如果你使用的是jsp2.2就不能把tld文件放在 /WEB-INF/tags 以及其子目录下。
jsp版本和tomcat的版本是相关的。jsp版本和tomcat的版本对应关系如下:
详情可查看:http://tomcat.apache.org/whichversion.html
解决办法
1.如果你的tld文件放在 /WEB-INF/tags目录下,而你不想改代码,那么,把tomcat换成apache-tomcat-7.0.55 或者以下的版本。(亲测可行)
2.如果你不想换tomcat就把 tld放在 /WEB-INF下。