Spring Boot——使用Thymeleaf模板

在視圖設(shè)計中,一般情況下都會采用Thymeleaf模板,那Thymeleaf模板有什么功能呢?
Thymeleaf是Web和獨立環(huán)境的現(xiàn)代服務(wù)器端Java模板引擎,能夠處理HTML,XML,JavaScript,CSS甚至純文本。它具有豐富的標(biāo)簽語言和函數(shù),主要目標(biāo)是提供一種優(yōu)雅和高度可維護的創(chuàng)建模板的方式。

Thymeleaf 是新一代的模板引擎,在spring4.0中推薦使用thymeleaf來做前端模版引擎,因為Springboot默認(rèn)是不支持JSP的,所以使用Spring Boot 框架進(jìn)行界面設(shè)計,一般都會用Thymeleaf 模板。

鏈接:https://www.cnblogs.com/ityouknow/p/5833560.html

http://www.cnblogs.com/chenlove/p/9375756.html

二、Spring Boot使用Thymeleaf

1、引入Thymeleaf依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

2、配置Thymeleaf

#thymelea模板配置
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
spring.thymeleaf.cache=false
spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**

PS:說明一下,這些配置不是必須的,如果配置了會覆蓋默認(rèn)的。
在開發(fā)時建議將spring.thymeleaf.cache設(shè)置為false,否則會有緩存,導(dǎo)致頁面沒法及時看到更新后的效果。比如你修改了一個文件,已經(jīng)update到tomcat,但刷新頁面還是之前的頁面,就是因為緩存引起的。
3、編寫模板文件src/main/resouces/templates/helloHtml.html

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" 
                xmlns:th="http://www.thymeleaf.org"      
                xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">    
<head>        
    <title>Hello World!</title>    
</head>    
<body>        
    <h1 th:inline="text">Hello.v.2</h1>        
    <p th:text="${hello}"></p>    
</body>
</html>

4、編寫訪問路徑(controller)

package com.guxf.demo.controller;
 
import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
 
 
 
@Controller
 
public class TemplateController {
    /**
     * 返回html模板.
     */
 
    @RequestMapping("/helloHtml")
    public String helloHtml(Map<String,Object> map){
 
       map.put("hello","from TemplateController.helloHtml----就問你簡不簡單?");
       return"/helloHtml";
    }
}

5、啟動Application,默認(rèn)輸入:http://127.0.0.1:8080/helloHtml

結(jié)果.png

三、補充——Spring Boot使用freemarker
使用freemarker也很簡單,在pom.xml加入freemarker的依賴:

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

剩下的編碼部分都是一樣的,說下application.properties文件:

########################################################
###FREEMARKER (FreeMarkerAutoConfiguration)
########################################################
spring.freemarker.allow-request-override=false
spring.freemarker.cache=true
spring.freemarker.check-template-location=true
spring.freemarker.charset=UTF-8
spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=false
spring.freemarker.expose-session-attributes=false
spring.freemarker.expose-spring-macro-helpers=false
#spring.freemarker.prefix=
#spring.freemarker.request-context-attribute=
#spring.freemarker.settings.*=
#spring.freemarker.suffix=.ftl
#spring.freemarker.template-loader-path=classpath:/templates/#comma-separatedlist
#spring.freemarker.view-names= #whitelistofviewnamesthatcanberesolved

剩余的代碼,基本都一樣,thymeleaf和freemarker是可以共存的。
本文記錄一下幾點:
一、資源文件的約定目錄結(jié)構(gòu)
二、Maven配置
三、開發(fā)時修改thymeleaf模板自動重新加載配置
四、thymeleaf常用基礎(chǔ)知識點

一、資源文件的約定目錄結(jié)構(gòu)
Maven的資源文件目錄:/src/java/resources
spring-boot項目靜態(tài)文件目錄:/src/java/resources/static
spring-boot項目模板文件目錄:/src/java/resources/templates
spring-boot靜態(tài)首頁的支持,即index.html放在以下目錄結(jié)構(gòu)會直接映射到應(yīng)用的根目錄下:

classpath:/META-INF/resources/index.html  
classpath:/resources/index.html  
classpath:/static/index.html  
calsspath:/public/index.html  

如果將index.html模板文件直接放到了/src/java/resources/templates目錄下,那么需配置下才可以訪問到首頁文件,因為目錄并不是首頁文件的默認(rèn)目錄:

@RequestMapping("/")  
    public String index(){  
        return "index";  
  } 

在spring-boot下,默認(rèn)約定了Controller試圖跳轉(zhuǎn)中thymeleaf模板文件的前綴prefix是”classpath:/templates/”,后綴suffix是”.html”
這個在application.properties配置文件中是可以修改的:

spring.thymeleaf.prefix: /templates/  
spring.thymeleaf.suffix: .html  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容