无效的 tld 文件,但它是文件名
Invalid tld file, but its the filename
我正在 SpringBoot 下创建自定义标签库。我的 taglib 标签是:
<%@taglib prefix="ttl" uri="/WEB-INF/tags/resourceBundle.tld" %>
我根据可用的许多资源创建了一个 TLD 文件并将其放在 /WEB-INF/tags/resourceBundle.tld 中,这是带有 uri 标签的部分
<taglib>
<uri>/WEB-INF/tags/resourceBundle.tld</uri>
...
但我在引用标签库时收到此错误消息:
org.apache.jasper.JasperException: Invalid tld file: [/WEB-INF/tags/resourceBundle.tld], see JSP specification section 7.3.1 for more details
但是,我不相信它会被阅读,因为它在 TagLibraryInfoImpl::generateTldResourcePath()@281:
中被确定为无效
if (uri.endsWith(".jar")) {
// snip
} else if (uri.startsWith("/WEB-INF/lib/") || uri.startsWith("/WEB-INF/classes/") ||
(uri.startsWith("/WEB-INF/tags/") && uri.endsWith(".tld")&& !uri.endsWith("implicit.tld"))) {
err.jspError("jsp.error.tld.invalid_tld_file", uri);
}
代码在最后 err.jspError 行结束:
err.jspError("jsp.error.tld.invalid_tld_file", uri);
基本上,如果 URI 以“/WEB-INF/tags”开头(正如许多消息来源所说的那样是强制性的)并以“.tld”而非“implicit.tld”结尾,则 tld 文件是“无效”- 甚至没有打开文件就得出了这个结论。
我已将 <%@taglib%> uri 更改为引用一个不存在的文件,并通过代码(以上)从相同路径获得相同的错误消息。
我阅读了很多关于这个主题的文章,并回顾了一个我使用自定义标签库的旧项目(但它使用了 ANT 和 Spring,我正在使用 Maven 和 SpringBoot ), 我不知道如何识别我的标签库。
有人能告诉我我做错了什么吗?
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.
我建议使用另一个目录。
我正在 SpringBoot 下创建自定义标签库。我的 taglib 标签是:
<%@taglib prefix="ttl" uri="/WEB-INF/tags/resourceBundle.tld" %>
我根据可用的许多资源创建了一个 TLD 文件并将其放在 /WEB-INF/tags/resourceBundle.tld 中,这是带有 uri 标签的部分
<taglib>
<uri>/WEB-INF/tags/resourceBundle.tld</uri>
...
但我在引用标签库时收到此错误消息:
org.apache.jasper.JasperException: Invalid tld file: [/WEB-INF/tags/resourceBundle.tld], see JSP specification section 7.3.1 for more details
但是,我不相信它会被阅读,因为它在 TagLibraryInfoImpl::generateTldResourcePath()@281:
中被确定为无效 if (uri.endsWith(".jar")) {
// snip
} else if (uri.startsWith("/WEB-INF/lib/") || uri.startsWith("/WEB-INF/classes/") ||
(uri.startsWith("/WEB-INF/tags/") && uri.endsWith(".tld")&& !uri.endsWith("implicit.tld"))) {
err.jspError("jsp.error.tld.invalid_tld_file", uri);
}
代码在最后 err.jspError 行结束:
err.jspError("jsp.error.tld.invalid_tld_file", uri);
基本上,如果 URI 以“/WEB-INF/tags”开头(正如许多消息来源所说的那样是强制性的)并以“.tld”而非“implicit.tld”结尾,则 tld 文件是“无效”- 甚至没有打开文件就得出了这个结论。
我已将 <%@taglib%> uri 更改为引用一个不存在的文件,并通过代码(以上)从相同路径获得相同的错误消息。
我阅读了很多关于这个主题的文章,并回顾了一个我使用自定义标签库的旧项目(但它使用了 ANT 和 Spring,我正在使用 Maven 和 SpringBoot ), 我不知道如何识别我的标签库。
有人能告诉我我做错了什么吗?
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.
我建议使用另一个目录。