我正在尝试使用Freemarker
从多个位置加载Spring MVC
个模板。该项目是使用Intellij
开发的。
我有两个maven
项目:
my-website:主要maven项目,包含WEB-INF/ftl
的自定义模板,例如WEB-INF/ftl/landing/login.ftl
generic-templates:包含WEB-INF/ftl
的通用自由标记模板,例如WEB-INF/ftl/landing/login.ftl
例如,Freemarker的想法是在“我的网站”中搜索登陆/登录。如果没有找到,则在' generic-templates'中搜索它。着陆/登录。
根据freemarker template loader documentation,freemarker.xml
应如下所示:
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPaths" value="generic-templates://WEB-INF/ftl/,/WEB-INF/ftl/" />
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="cache" value="true"/>
<property name="prefix" value=""/>
<property name="suffix" value=".ftl"/>
</bean>
但我显然做了一些非常错误的事情,因为它不起作用:找不到通用模板的文件。
任何想法我怎样才能使这项工作? (欢迎实现同一目标的其他方法)
我该如何调试?
答案 0 :(得分:0)
计划部分(包括:
之前和之后的部分)是某些集成框架通过其自定义TemplateLoader
- s使用的内容,而其他部分则不是。{p>}解释该计划不是由FreeMarker本身完成的。此外,Spring对资源路径中的方案有自己的想法,这可能会干扰这种机制。
然而,一个人定制的东西,该方案不应该引用Maven模块名称,因为Maven模块在运行时并不存在。相反,您应该将两组模板放在WEB-INF下的不同目录下,然后在templateLoaderPaths
中列出两个路径,与您一样。