簡體   English   中英

Freemarker通過Java設置checkTemplateLocation

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM