几个 jar 中的 freemarker 模板

2023-11-24

如何配置 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

Work.

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

Work.

ModelAndView mav = new ModelAndView();
mav.setViewName("simple");

Work.

ModelAndView mav = new ModelAndView();
mav.setViewName("test");

还有问题!如何配置 freemarker 在同一路径(classpath:/freemarker/)中搜索多个 jar(war)?


我找到了解决方案!关首选文件系统访问始终通过 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>

公共空白设置首选文件系统访问(布尔值首选文件系统访问)

设置是否首选文件系统访问来加载模板。文件系统访问支持模板更改的热检测。

如果启用此功能,FreeMarkerConfigurationFactory 将尝试将指定的“templateLoaderPath”解析为文件系统资源(这也适用于扩展类路径资源和 ServletContext 资源)。

默认值为“true”。关闭此选项以始终通过 SpringTemplateLoader 加载(即作为流,无需热检测模板更改),如果某些模板驻留在扩展的类目录中,而其他模板驻留在 jar 文件中,则可能需要这样做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

几个 jar 中的 freemarker 模板 的相关文章

随机推荐