【Spring4 MVC】(二)-配置模板引擎

引言:上一篇文章中厦坛,我們的模板引擎使用的是Thymeleaf(Spring-Boot自動配置的)。如果我想使用自己喜歡的模板引擎(比如FreeMarker乍惊、JSTL 等)應(yīng)該如何做呢杜秸?
本篇文章將會在上一篇的基礎(chǔ)上,配置一個適合自己的模板引擎(依舊以Thymeleaf為例)污桦。

文件結(jié)構(gòu)

既然是個web項目亩歹,那就賦予該項目相應(yīng)的web項目結(jié)構(gòu),我在此新建了webapp目錄凡橱,將resources下的html文件進(jìn)行拷貝小作。

文件結(jié)構(gòu).png

編輯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
測試成功.png

小結(jié)

在配置自己喜歡的模板引擎,記得添加相關(guān)依賴(pom.xml)
這里是官網(wǎng) View technologies 介紹 傳送門

項目源碼地址 (http://git.oschina.net/tobe/Spring4MVC/tree/template_engine/)
強(qiáng)烈建議大家多用 Git

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末敞葛,一起剝皮案震驚了整個濱河市誉察,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌惹谐,老刑警劉巖持偏,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異氨肌,居然都是意外死亡综液,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門儒飒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人檩奠,你說我怎么就攤上這事桩了。” “怎么了埠戳?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵井誉,是天一觀的道長。 經(jīng)常有香客問我整胃,道長颗圣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任屁使,我火速辦了婚禮在岂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蛮寂。我一直安慰自己蔽午,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布酬蹋。 她就那樣靜靜地躺著及老,像睡著了一般。 火紅的嫁衣襯著肌膚如雪范抓。 梳的紋絲不亂的頭發(fā)上骄恶,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機(jī)與錄音匕垫,去河邊找鬼僧鲁。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的悔捶。 我是一名探鬼主播铃慷,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜕该!你這毒婦竟也來了犁柜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤堂淡,失蹤者是張志新(化名)和其女友劉穎馋缅,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绢淀,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡萤悴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了皆的。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片覆履。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖费薄,靈堂內(nèi)的尸體忽然破棺而出硝全,到底是詐尸還是另有隱情,我是刑警寧澤楞抡,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布伟众,位于F島的核電站,受9級特大地震影響召廷,放射性物質(zhì)發(fā)生泄漏凳厢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一竞慢、第九天 我趴在偏房一處隱蔽的房頂上張望先紫。 院中可真熱鬧,春花似錦筹煮、人聲如沸泡孩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仑鸥。三九已至,卻和暖如春变屁,著一層夾襖步出監(jiān)牢的瞬間眼俊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工粟关, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留疮胖,地道東北人。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像澎灸,于是被迫代替她去往敵國和親院塞。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理性昭,服務(wù)發(fā)現(xiàn)拦止,斷路器,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,748評論 6 342
  • Thymeleaf簡介 前面的例子我們使用的視圖技術(shù)主要是JSP糜颠。JSP的優(yōu)點是它是Java EE容器的一部分汹族,幾...
    樂百川閱讀 8,975評論 2 56
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,510評論 25 707
  • 忍…… 忍無可忍 還是要忍! 等…… 等到心慌 還是要等其兴! 天慢慢變了顏色顶瞒,人漸漸變了臉色, 時間仿佛被凝固元旬,...
    時間下的一場雨閱讀 152評論 0 0