Spring JavaConfig 表示法中的 freemarker 外部加载程序路径
Spring freemarker external loader path in JavaConfig notation
我看到很多关于如何在 application.properties 文件中设置模板加载器路径的帖子,但我想在我的 Java 代码中进行设置。我有这个:
@Autowired
FreeMarkerConfiguration freeMarkerConfiguration;
@Bean
public FreeMarkerViewResolver freemarkerViewResolver() {
FreeMarkerViewResolver resolver = new FreeMarkerViewResolver();
resolver.setCache(true);
resolver.setPrefix(freeMarkerConfiguration.getPrefix());
resolver.setSuffix(freeMarkerConfiguration.getSuffix());
return resolver;
}
@Bean
public FreeMarkerConfigurer freemarkerConfig() {
FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer();
freeMarkerConfigurer.setTemplateLoaderPath("/WEB-INF/views/ftl/");
return freeMarkerConfigurer;
}
所以我想要的是在 setTemplateLoaderPath 中放入什么或自定义 FreeMarkerConfigurer 的示例。此路径将在 war 之外,因此它需要像 File:/opt/share/templates/... 等....
比我想象的要简单。您只需将 "file:" 放在前面即可。这非常有效:
@Bean
public FreeMarkerConfigurer freemarkerConfig() {
FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer();
freeMarkerConfigurer.setTemplateLoaderPath("file:/opt/data/project/resources/freemarker/);
return freeMarkerConfigurer;
}
我看到很多关于如何在 application.properties 文件中设置模板加载器路径的帖子,但我想在我的 Java 代码中进行设置。我有这个:
@Autowired
FreeMarkerConfiguration freeMarkerConfiguration;
@Bean
public FreeMarkerViewResolver freemarkerViewResolver() {
FreeMarkerViewResolver resolver = new FreeMarkerViewResolver();
resolver.setCache(true);
resolver.setPrefix(freeMarkerConfiguration.getPrefix());
resolver.setSuffix(freeMarkerConfiguration.getSuffix());
return resolver;
}
@Bean
public FreeMarkerConfigurer freemarkerConfig() {
FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer();
freeMarkerConfigurer.setTemplateLoaderPath("/WEB-INF/views/ftl/");
return freeMarkerConfigurer;
}
所以我想要的是在 setTemplateLoaderPath 中放入什么或自定义 FreeMarkerConfigurer 的示例。此路径将在 war 之外,因此它需要像 File:/opt/share/templates/... 等....
比我想象的要简单。您只需将 "file:" 放在前面即可。这非常有效:
@Bean
public FreeMarkerConfigurer freemarkerConfig() {
FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer();
freeMarkerConfigurer.setTemplateLoaderPath("file:/opt/data/project/resources/freemarker/);
return freeMarkerConfigurer;
}