嵌入式Tomcat中具有JSP标签库的Spring-Boot

Hab*_*nes 5 freemarker jsp-tags spring-boot embedded-tomcat-8

我目前正在迁移Spring MVC Webapp(通过spring-boot将xml-config迁移到java-config,将tomcat迁移到嵌入式tomcat)。

该webapp使用freemarker作为模板引擎和JSP Taglib。现在,当我调用一个freemarker页面时,出现以下错误:

freemarker.ext.jsp.TaglibFactory$TaglibGettingException: 
No TLD was found for the "http://www.springframework.org/tags/form" JSP taglib URI. (TLD-s are searched according the JSP 2.2 specification. In development- and embedded-servlet-container setups you may also need the "MetaInfTldSources" and "ClasspathTlds" freemarker.ext.servlet.FreemarkerServlet init-params or the similar system properites.)
Run Code Online (Sandbox Code Playgroud)

freemarker-header.ftl以以下代码段开头:

<#assign form=JspTaglibs["http://www.springframework.org/tags/form"]>
<#assign core=JspTaglibs["http://java.sun.com/jstl/core"]>
<#assign spring=JspTaglibs["http://www.springframework.org/tags"]>
<#assign osc=JspTaglibs["/WEB-INF/osc.tld"]>
Run Code Online (Sandbox Code Playgroud)

我没有找到任何可用的MetaInfTldSources和ClasspathTlds搜索结果。有人解决过这个问题吗?

哈比卜(KR Habib)

And*_*son 1

Spring Boot 不支持开箱即用地将 JSP 标记库与 Freemarker 一起使用。您可能会对一个开放的增强请求感兴趣。它包含一个可能的解决方法的链接,您可以在其中配置FreemarkerConfigurer标签库工厂,并使用要从类路径加载的一些附加 TLD:

\n\n
freeMarkerConfigurer.getTaglibFactory().setClasspathTlds(\xe2\x80\xa6);\n
Run Code Online (Sandbox Code Playgroud)\n