[英]Freemarker Set checkTemplateLocation via Java
我有一个Spring Boot Web应用程序。 我将Freemarker用作ViewResolver,并通过Java配置了所有内容。 我在日志文件中收到警告:
2018-02-07 19:00:28,592 WARN o.s.b.a.f.FreeMarkerAutoConfiguration -
Cannot find template location(s): [classpath:/templates/]
(please add some templates, check your FreeMarker configuration, or set spring.freemarker.checkTemplateLocation=false)
我的模板位于外部位置,因此警告是正确的。
我有这样的配置设置:
@Bean
public FreeMarkerConfigurer freemarkerConfig() {
FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer();
freeMarkerConfigurer.setTemplateLoaderPath(freeMarkerConfiguration.getBasePath());
return freeMarkerConfigurer;
}
templateLoaderPath是一个外部文件:location,并且具有模板。 实际上,一切工作正常,我只是想从日志文件中消除警告,但是已经使我陷入困境,现在我需要弄清楚这一点。 因此,我将该属性添加到我的配置中,如下所示:
@Bean
public FreeMarkerConfigurer freemarkerConfig() {
FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer();
Properties props = new Properties();
props.setProperty("checkTemplateLocation", "false");
freeMarkerConfigurer.setTemplateLoaderPath(freeMarkerConfiguration.getBasePath());
freeMarkerConfigurer.setFreemarkerSettings(props);
return freeMarkerConfigurer;
}
这会引发错误:
Unknown FreeMarker configuration setting: "checkTemplateLocation"
我已经尝试过“ freemarker.checkTemplateLocation”和“ spring.freemarker.checkTemplateLocation”,但都没有起作用。
如何通过Java配置设置此设置?
我认为您将与Spring无关的FreeMarker Configuration设置与Spring的配置属性混淆了。 spring.freemarker.checkTemplateLocation
是特定于Spring的东西,例如,您可以将其放入application.properties
。 FreeMarker配置设置由FreeMarker定义,请注意,它们不是“属性”,而是“设置”。 可能是由于您使用java.util.Properties
对象指定它们而引起的困惑。
尽管当然最好的方法是消除警告的原因... setTemplateLoaderPath
调用发生在WARN记录之后吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.