DaF*_*oot 12 spring freemarker spring-mvc
我正在尝试使用Freemarker和Java配置创建Spring MVC应用程序.
我习惯使用JSP,但我想我会给Freemarker一个旋转.
我添加了Freemarker作为依赖,并且Maven正在下载jar:
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.20</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用3.2.3.RELEASE版本的Spring.
我的MVC配置,通过阅读类似问题组装而成:
@ComponentScan(basePackages="yhj.*")
@EnableWebMvc
public class MvcConfiguration extends WebMvcConfigurerAdapter{
@Bean
public ViewResolver viewResolver() {
FreeMarkerViewResolver resolver = new FreeMarkerViewResolver();
resolver.setCache(true);
resolver.setPrefix("");
resolver.setSuffix(".ftl");
return resolver;
}
@Bean
public FreeMarkerConfigurer freemarkerConfig() {
FreeMarkerConfigurer result = new FreeMarkerConfigurer();
result.setTemplateLoaderPath("/WEB-INF/views/");
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行它时,我得到一个编译错误,我的IDE告诉我无法解析方法'setTemplateLoaderPath(String)'.
那么......看起来像是使用Freemarker配置Spring MVC的正确方法吗?如果这是问题,我需要添加到我的POM的依赖项是什么?
Sam*_*nen 14
我的Spring Boot 1.0.2,Spring 4.0.3和FreeMarker 2.3.20的解决方案是以下类:
@Configuration
public class MvcConfigurer extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver() {
FreeMarkerViewResolver resolver = new FreeMarkerViewResolver();
resolver.setCache(true);
resolver.setPrefix("");
resolver.setSuffix(".ftl");
resolver.setContentType("text/html; charset=UTF-8");
return resolver;
}
@Bean
public FreeMarkerConfigurer freemarkerConfig() throws IOException, TemplateException {
FreeMarkerConfigurationFactory factory = new FreeMarkerConfigurationFactory();
factory.setTemplateLoaderPath("classpath:templates");
factory.setDefaultEncoding("UTF-8");
FreeMarkerConfigurer result = new FreeMarkerConfigurer();
result.setConfiguration(factory.createConfiguration());
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
此外,您需要pom.xml在问题和DaFoot自己的答案中进行相同的更改.
DaF*_*oot 11
好吧,我已经对编译问题进行了排序,为我的pom添加了一个依赖...
<dependency><!-- needed for freemarker FreeMarkerConfigurer stuff -->
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
@Bean(name = "freeMarkerViewResolver")
public FreeMarkerViewResolver getFreeMarkerViewResolver() {
FreeMarkerViewResolver resolver = new FreeMarkerViewResolver();
resolver.setPrefix("/WEB-INF/views/json/");
resolver.setSuffix(".json");
resolver.setOrder(2);
resolver.setContentType("application/json");
resolver.setCache(true);
return resolver;
}
@Bean(name = "freemarkerConfig")
public FreeMarkerConfigurer getFreemarkerConfig() throws IOException, TemplateException {
FreeMarkerConfigurer result = new FreeMarkerConfigurer();
result.setTemplateLoaderPaths("/"); // prevents FreeMarkerConfigurer from using its default path allowing setPrefix to work as expected
return result;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12196 次 |
| 最近记录: |