引言:上一篇文章中厦坛,我們的模板引擎使用的是Thymeleaf(Spring-Boot自動配置的)。如果我想使用自己喜歡的模板引擎(比如FreeMarker乍惊、JSTL 等)應(yīng)該如何做呢杜秸?
本篇文章將會在上一篇的基礎(chǔ)上,配置一個適合自己的模板引擎(依舊以Thymeleaf為例)污桦。
文件結(jié)構(gòu)
既然是個web項目亩歹,那就賦予該項目相應(yīng)的web項目結(jié)構(gòu),我在此新建了webapp目錄凡橱,將resources下的html文件進(jìn)行拷貝小作。
編輯WebMvcConfig
新增class,WebMvcConfig.class
package com.practice;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.thymeleaf.spring4.SpringTemplateEngine;
import org.thymeleaf.spring4.view.ThymeleafViewResolver;
import org.thymeleaf.templateresolver.ServletContextTemplateResolver;
import org.thymeleaf.templateresolver.TemplateResolver;
/**
* 該配置類 類似于mvc配置文件:spring_mvc.xml
* Created by SXY on 2016/1/19.
*/
// @EnableWebMvc 用來導(dǎo)入mvc框架的自動化配置稼钩,使用前提是該類有@Configuration存在
/*@ComponentScan 掃描控制器組件顾稀,使用方式有兩種:
* 1.指定具體類 例如@ComponentScan(basePackageClasses = HelloController.class),或者 basePackageClasses = {HelloController.class,xxx.class,…}
* 2.指定基礎(chǔ)包 例如本例使用的方法坝撑,或者數(shù)組形式@ComponentScan({"com.*.**","com.*.**"})
* 注:basePackages 關(guān)鍵字 可以選擇性添加静秆,默認(rèn)會自動匹配到basePackages
* */
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.practice")
public class WebMvcConfig {
// 聲明頁面的編碼格式、類型
private static final String CONTENTTYPE = "text/html; charset=UTF-8";
// Thymeleaf框架配置
@Bean
public TemplateResolver templateResolver(){
ServletContextTemplateResolver resolver = new ServletContextTemplateResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".html");
// 去除緩存
resolver.setCacheable(false);
resolver.setCharacterEncoding("UTF-8");
return resolver;
}
@Bean
public SpringTemplateEngine templateEngine(){
SpringTemplateEngine springTemplateEngine = new SpringTemplateEngine();
springTemplateEngine.setTemplateResolver(templateResolver());
return springTemplateEngine;
}
/**
* 模板引擎解釋器
* @return
*/
@Bean
public ViewResolver viewResolver() {
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setContentType(CONTENTTYPE);
viewResolver.setTemplateEngine(templateEngine());
viewResolver.setOrder(1);
return viewResolver;
}
}
編輯Application
package com.practice;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration;
/**
* Created by SXY on 2016/1/18.
*/
/* @SpringBootApplication 包含了:
* 1巡李、@Configuration 該類是一個配置文件
* 2抚笔、@EnableAutoConfiguration 告訴spring-boot 進(jìn)行自動化配置,加載基礎(chǔ)包
* 3侨拦、@ComponentScan 自動掃描當(dāng)前包下的class殊橙,完成mvc配置
* exclude 關(guān)鍵字,用來排除不需要的配置。比如我們要自定義 模板引擎膨蛮,原有的就可以排除掉
* */
@SpringBootApplication(exclude = {ThymeleafAutoConfiguration.class})
public class Application {
// main方法作為程序入口叠纹,啟動spring程序
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
測試
再次運行:
mvn spring-boot:run
小結(jié)
在配置自己喜歡的模板引擎,記得添加相關(guān)依賴(pom.xml)
這里是官網(wǎng) View technologies 介紹 傳送門
項目源碼地址 (http://git.oschina.net/tobe/Spring4MVC/tree/template_engine/)
強(qiáng)烈建議大家多用 Git