最近后臺(tái)項(xiàng)目拆分瘾敢,由于之前APP后臺(tái)拆分時(shí)用的spring-boot瞧筛,而且一些公用的都以獨(dú)立模塊分離(web、auth息拜、datasource溉潭、orm等等),所以后臺(tái)也用spring-boot少欺,把需要的模塊通過(guò)maven引入進(jìn)來(lái)就可以了喳瓣,可以省很多事;前端瞅了瞅赞别,看Thymeleaf不錯(cuò)畏陕,跟spring-boot集成也比較好,就選它了仿滔。
1惠毁、創(chuàng)建一個(gè)maven工程,這個(gè)應(yīng)該都會(huì)
2崎页、pom文件加入下面內(nèi)容即可(版本號(hào)自己改)
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.6.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
3鞠绰、寫一個(gè)入口類(偷懶,控制器也寫這里了)
@Controller
@SpringBootApplication
public class Application {
/**
* @param args
*/
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@RequestMapping("/")
public String toIndex() {
return "index";
}
}
4飒焦、寫個(gè)index.html
- spring boot默認(rèn)加載文件的路徑是
- /META-INF/resources/
- /resources/
- /static/
- /public/
由于習(xí)慣上靜態(tài)資源還是放到 static下蜈膨,所以在工程的resources目錄下建立一個(gè)static目錄,static下面可以再建css、js等等目錄
Thymeleaf是需要寫模板翁巍,自然也需要一個(gè)路徑驴一,而它的路徑也是在resources下,只需建一個(gè)templates文件夾即可
在templates新建一個(gè)index.html文件灶壶,內(nèi)容如下:
<!DOCTYPE html>
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
<title>首頁(yè)</title>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" th:href="@{/css/index.css}" />
</head>
<body>
hi
</body>
</html>
5肝断、通過(guò)前面寫的Application入口類運(yùn)行程序
瀏覽器輸入:http://localhost:8080/
即可看到結(jié)果
下面是一些額外配置
在工程的resources目錄下創(chuàng)建一個(gè)application.properties文件,這個(gè)文件是spring-boot用來(lái)配置一些工程屬性用的
# 配置服務(wù)器端口驰凛,默認(rèn)是8080胸懈,可以不用配置
server.port=8080
# 模板配置
# 這個(gè)開(kāi)發(fā)配置為false,避免改了模板還要重啟服務(wù)器
spring.thymeleaf.cache=false
# 這個(gè)是配置模板路徑的洒嗤,默認(rèn)就是templates箫荡,可不用配置
spring.thymeleaf.prefix=classpath:/templates/
# 這個(gè)可以不配置,檢查模板位置
spring.thymeleaf.check-template-location=true
# 下面3個(gè)不做解釋了渔隶,可以不配置
spring.thymeleaf.suffix=.html
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
# 模板的模式
spring.thymeleaf.mode=HTML5
這個(gè)mode有6種(2.1版本):
- XML
- Valid XML
- XHTML (默認(rèn))
- Valid XHTML
- HTML5
- Legacy HTML5
一般常用的是最后兩個(gè)羔挡,第一個(gè)沒(méi)啥好說(shuō)的,第二個(gè)為了兼容之前的代碼间唉,便于向Thymeleaf過(guò)度绞灼。
官方文檔關(guān)于這個(gè)說(shuō)明:
除了Legacy HTML5之外,其他模式都必須是閉合的(標(biāo)簽)呈野,也就是說(shuō)不支持不規(guī)范的HTML標(biāo)簽寫法 (有人說(shuō)這個(gè)是Thymeleaf的坑低矮,其實(shí)人家文檔開(kāi)始就說(shuō)明了)不規(guī)范的寫法 such as standalone (not closed) tags, tag attributes without a value or not written between quotes
對(duì)于配置了Legacy HTML5模式的情況,Legacy HTML5先轉(zhuǎn)換為規(guī)范寫法的H5被冒,so官方建議使用H5的代碼來(lái)寫模板
Thymeleaf will first perform a transformation that will convert your files to well-formed XML files which are still perfectly valid HTML5 (and are in fact the recommended way to create HTML5 code)
配置為L(zhǎng)egacy HTML5模式军掂,還需要額外引入一個(gè)包用來(lái)處理代碼
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.22</version><!-- 版本自己調(diào)整,也可不動(dòng) -->
</dependency>
不知道對(duì)那段英文的理解是否有偏差
Thymeleaf 3.0版本有些區(qū)別(分為以下幾種):
- HTML (默認(rèn))
- XML
- TEXT
- JAVASCRIPT
- CSS
- RAW
其中默認(rèn)是mode是HTML昨悼。配置為HTML支持: HTML, HTML5, HTML4 和 XHTML蝗锥。
無(wú)需添加nekohtml包。