几个 jar 中的 freemarker 模板
如何配置 freemarker 来搜索多个 jar 中的模板?随着春天。
<!-- freemarker config -->
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPaths" value="classpath:/freemarker/" />
</bean>
一个 war 文件(用于部署)和一个 jar 文件(在依赖项中)。
One.war
/freemarker/simple.ftl
Two.jar
/freemarker/test.ftl
工作。
ModelAndView mav = new ModelAndView();
mav.setViewName("simple");
不要工作。找不到 test.ftl
ModelAndView mav = new ModelAndView();
mav.setViewName("test");
如果设置为:
<property name="templateLoaderPaths" value="classpath:/freemarker/,classpath:/freemarker2/" />
One.war
/freemarker/simple.ftl
Two.jar
/freemarker2/test.ftl
工作。
ModelAndView mav = new ModelAndView();
mav.setViewName("simple");
工作。
ModelAndView mav = new ModelAndView();
mav.setViewName("test");
还有问题!如何配置 freemarker 在同一路径(classpath:/freemarker/)中搜索多个 jar(war)?
How can I configure freemarker to search templates in several jars? With spring.
<!-- freemarker config -->
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPaths" value="classpath:/freemarker/" />
</bean>
One war file (to deploy), and jar file (in dependencies).
One.war
/freemarker/simple.ftl
Two.jar
/freemarker/test.ftl
Work.
ModelAndView mav = new ModelAndView();
mav.setViewName("simple");
Do not work. Can't find test.ftl
ModelAndView mav = new ModelAndView();
mav.setViewName("test");
If settings is:
<property name="templateLoaderPaths" value="classpath:/freemarker/,classpath:/freemarker2/" />
One.war
/freemarker/simple.ftl
Two.jar
/freemarker2/test.ftl
Work.
ModelAndView mav = new ModelAndView();
mav.setViewName("simple");
Work.
ModelAndView mav = new ModelAndView();
mav.setViewName("test");
And question! How configure freemarker to search in several jars(wars) in same path (classpath:/freemarker/)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我找到了解决方案!关闭 preferFileSystemAccess 以始终通过 SpringTemplateLoader 加载。
I found solution! Turn off preferFileSystemAccess to always load via SpringTemplateLoader.
有一次我以编程方式做了类似的事情:
ControllerServlet 是我真正的 servlet 的基类。
第 1 个将模板的搜索路径设置为当前 servlet 上下文中的 {{WEB-INF/templates}}。
Number 2 设置子包“templates”的第二个搜索路径。
您可以添加更多模板路径。
希望有帮助。
Once I did a similar thing programmatically :
ControllerServlet is a base class for my real servlets.
Number 1 sets the search path for templates to {{WEB-INF/templates}} in the current servlet context.
Number 2 sets a second search path to the subpackage "templates".
You may add more template paths.
Hope it helps.