Freemarker 找不到 JSP TLD-s



我正在用tomcat 7,spring 4.1.7(带有spring mvc)和freemarker 2.3.23创建一个项目。所有库都部署在/WEB-INF/lib 下,其中包含自定义库,其自己的/META-INF/下有 TLD。

但是当freemarker扫描<#assign a=JspTagLib["/WEB-INF/a.tld"]>时,系统抱怨找不到这个定义文件。

调试到 freemarker 的 TaglibFacotry.java 后,我发现显式映射的 tld 位置不起作用。这意味着您必须将 tld 直接放在类路径下。我试图将一个 tld 复制到/WEB-INF/,它有效。

进一步的调查显示"servletContext.getResourcePaths("/WEB-INF/lib")"总是返回空值。

我是否错过了一些配置?还是与兼容性问题有关,因为它与 Jetty 配合使用正常?

提前谢谢。

验证您的部署是否将所有 jar 复制到 WEB-INF/lib。TaglibFactory 扫描里面的每个罐子,搜索/META-INF/**/*tlds。

看看 https://stackoverflow.com/a/37092269/1113510

最新更新