模板引擎thymeleaf和freemarker0824

一蔫仙、Thymeleaf和FreeMarker優(yōu)缺點
1.1Thymeleaf
Thymeleaf是個XML/XHTML/HTML5模板引擎,可以用于Web與非Web應(yīng)用蝗罗。Thymeleaf的主要目標在于提供一種可被瀏覽器正確顯示的栖忠、格式良好的模板創(chuàng)建方式咽瓷,因此也可以用作靜態(tài)建模设凹。你可以使用它創(chuàng)建經(jīng)過驗證的XML與HTML模板。相對于編寫邏輯或代碼茅姜,開發(fā)者只需將標簽屬性添加到模板中即可闪朱。接下來月匣,這些標簽屬性就會在DOM(文檔對象模型)上執(zhí)行預先制定好的邏輯。

優(yōu)點
1奋姿、靜態(tài)html嵌入標簽屬性锄开,瀏覽器可以直接打開模板文件,便于前后端聯(lián)調(diào)称诗。
2萍悴、springboot官方推薦方案。
缺點
1寓免、模板必須符合xml規(guī)范
2癣诱、html必須添加<html xmlns:th="http://www.thymeleaf.org">

1.2FreeMarker
FreeMarker是一個用Java語言編寫的模板引擎,它基于模板來生成文本輸出袜香。FreeMarker與Web容器無關(guān)撕予,即在Web運行時,它并不知道Servlet或HTTP蜈首。它不僅可以用作表現(xiàn)層的實現(xiàn)技術(shù)实抡,而且還可以用于生成XML,JSP或Java 等欢策。目前企業(yè)中:主要用Freemarker做靜態(tài)頁面或是頁面展示
優(yōu)點
1吆寨、不能編寫java代碼,可以實現(xiàn)嚴格的mvc分離
2猬腰、性能非常不錯
3鸟废、對jsp標簽支持良好
4、內(nèi)置大量常用功能姑荷,使用非常方便
5盒延、宏定義(類似jsp標簽)非常方便
6、使用表達式語言?
缺點
1鼠冕、不是官方標準
2添寺、用戶群體和第三方標簽庫沒有jsp多</pre>

二、thymeleafDemo應(yīng)用
2.1Springboot的pom文件

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.0.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--thymeleaf模版引擎-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
    </dependencies>

2.2默認配置文件(支持yml格式)

spring:
thymeleaf:
  cache: false
# 以下是默認配置
#    prefix: classpath:/templates/
#    suffix: .html
#    mode: HTML5
#    encoding: UTF-8
#    content-type: text/html

2.3創(chuàng)建啟動類

@Controller
@SpringBootApplication
public class SpringbootThymeleafApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootThymeleafApplication.class,args);
    }
    @RequestMapping("/")
    public String hello(Map<String,Object> map){
        map.put("name","xiaoqiaobian");
        return "hello";
    }
}

2.4創(chuàng)建XML/XHTML/HTML5模版

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Hello World!</title>
</head>
<body>
Hello World <p th:text="${name}"></p>
</body>
</html>

2.5運行啟動類

image-20200824200134895.png

訪問http://localhost:8080/
demo測試成功
image-20200824200218473.png

三懈费、FreeMarker應(yīng)用
3.1Springboot的pom文件

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.0.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--freemarker模版引擎依賴-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>
    </dependencies>

2.2創(chuàng)建application.properties手動添加配置文件

## Freemarker 配置
# 設(shè)置緩存開啟狀態(tài)
spring.freemarker.cache= false
# 模版的路徑
spring.freemarker.template-loader-path= classpath:/templates/ftl/
# 設(shè)置頁面編碼格式
spring.freemarker.charset=UTF-8
spring.freemarker.check-template-location=true
# 設(shè)置文檔類型
spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=true
spring.freemarker.expose-session-attributes=true
spring.freemarker.request-context-attribute=request
# 設(shè)置模版后綴名
spring.freemarker.suffix=.ftl

2.3創(chuàng)建啟動類

@SpringBootApplication
public class SpringbootFreemarkerApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootFreemarkerApplication.class,args);
    }
}

2.4創(chuàng)建AppContoller

@Controller
public class AppController {

    @RequestMapping("/")
    public String hello(Map<String,Object> map){
        map.put("name","xiaoqiaobian");
        return "lucky";
    }
}

2.5創(chuàng)建JSP/XHTML/HTML5模版

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>我是一個jsp</title>
</head>
<body>
Lucky ${name}!!!!
</body>
</html>

2.5運行啟動類

image-20200824202037099.png

訪問http://localhost:8080/
demo測試成功
image-20200824202240260.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末计露,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子憎乙,更是在濱河造成了極大的恐慌票罐,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泞边,死亡現(xiàn)場離奇詭異该押,居然都是意外死亡,警方通過查閱死者的電腦和手機阵谚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門蚕礼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來烟具,“玉大人,你說我怎么就攤上這事奠蹬〕” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵囤躁,是天一觀的道長冀痕。 經(jīng)常有香客問我,道長狸演,這世上最難降的妖魔是什么金度? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮严沥,結(jié)果婚禮上猜极,老公的妹妹穿的比我還像新娘。我一直安慰自己消玄,他們只是感情好跟伏,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著翩瓜,像睡著了一般受扳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上兔跌,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天勘高,我揣著相機與錄音,去河邊找鬼坟桅。 笑死华望,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的仅乓。 我是一名探鬼主播赖舟,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼夸楣!你這毒婦竟也來了宾抓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤豫喧,失蹤者是張志新(化名)和其女友劉穎石洗,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體紧显,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡讲衫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鸟妙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片焦人。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖重父,靈堂內(nèi)的尸體忽然破棺而出花椭,到底是詐尸還是另有隱情,我是刑警寧澤房午,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布矿辽,位于F島的核電站,受9級特大地震影響郭厌,放射性物質(zhì)發(fā)生泄漏袋倔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一折柠、第九天 我趴在偏房一處隱蔽的房頂上張望宾娜。 院中可真熱鬧,春花似錦扇售、人聲如沸前塔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽华弓。三九已至,卻和暖如春困乒,著一層夾襖步出監(jiān)牢的瞬間寂屏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工娜搂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留迁霎,地道東北人。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓百宇,卻偏偏與公主長得像欧引,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子恳谎,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349