Ale*_*der 8 java spring freemarker
如何配置freemarker来搜索几个罐子中的模板?随着春天.
<!-- freemarker config -->
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPaths" value="classpath:/freemarker/" />
</bean>
Run Code Online (Sandbox Code Playgroud)
一个war文件(要部署)和jar文件(在依赖项中).
One.war
/freemarker/simple.ftl
Two.jar
/freemarker/test.ftl
工作.
ModelAndView mav = new ModelAndView();
mav.setViewName("simple");
Run Code Online (Sandbox Code Playgroud)
不工作.找不到test.ftl
ModelAndView mav = new ModelAndView();
mav.setViewName("test");
Run Code Online (Sandbox Code Playgroud)
如果设置为:
<property name="templateLoaderPaths" value="classpath:/freemarker/,classpath:/freemarker2/" />
Run Code Online (Sandbox Code Playgroud)
One.war
/freemarker/simple.ftl
Two.jar
/freemarker2/test.ftl
工作.
ModelAndView mav = new ModelAndView();
mav.setViewName("simple");
Run Code Online (Sandbox Code Playgroud)
工作.
ModelAndView mav = new ModelAndView();
mav.setViewName("test");
Run Code Online (Sandbox Code Playgroud)
还有问题!如何配置freemarker在同一路径中的几个jar(war)中搜索(classpath:/ freemarker /)?
Ale*_*der 10
我找到了解决方案 关闭preferFileSystemAccess以始终通过SpringTemplateLoader加载.
<!-- freemarker config -->
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPaths" value="classpath:/freemarker/" />
<property name="preferFileSystemAccess" value="false" />
</bean>
Run Code Online (Sandbox Code Playgroud)
public void setPreferFileSystemAccess(boolean preferFileSystemAccess)
设置是否更喜欢文件系统访问以进行模板加载.文件系统访问可以热检测模板更改.
如果启用此选项,FreeMarkerConfigurationFactory将尝试将指定的"templateLoaderPath"解析为文件系统资源(这也适用于扩展的类路径资源和ServletContext资源).
默认为"true".将其关闭以始终通过SpringTemplateLoader加载(即作为流,无需热模板更改检测),如果某些模板驻留在扩展类目录中而其他模板驻留在jar文件中,则可能需要这样做.
| 归档时间: |
|
| 查看次数: |
5691 次 |
| 最近记录: |