[英]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.