在.net的MVC3 或更高版本等支持 Razor 的框架裏使用cshtml,Razor是一種簡單的編程語法,用於在網頁中嵌入服務器端代碼.在使用springboot開發mvc時也有與.net相似的視圖引擎.
Spring Boot提供了大量的模板引擎,包含了FreeMarker,Groovy,Thymeleaf,Velocity和Mustache,Spring Boot中推薦使用Thymeleaf做爲模板引擎,由於Thymeleaf提供了完美的Spring MVC的支持。Thymeleaf是一個java類庫,它是一個xml/xhtml/html5的模板引擎,能夠做爲MVC的Web應用的View層。Thymeleaf還提供了額外的模塊與Spring MVC集成,因此咱們可使用Thymeleaf徹底替代JSP。
1、Thymeleaf配置
Thymeleaf有哪些屬性能夠配置呢,咱們能夠在org.springframework.boot.autoconfigure.thymeleaf下的ThymeleafProperties.class找到屬性,springboot約定大於配置,因此在ThymeleafProperties.class中也都有默認值,若是咱們想改變默認值能夠在application.properties設置。這裏用的都是它的默認值。默認路徑在templates下,文件是html文件。html
2、項目引入Thymeleafhtml5
這裏仍是在上一springboot博客的例子基礎上進行修改,這裏須要在pom.xml引入Thymeleaf,這裏要注意一下,因爲用的是spring5,若是引入的Thymeleaf版本不正確就可能會報錯,並且不一樣的spring引入Thymeleaf的artifactId也不同。java
<dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring5</artifactId> <version>3.0.9.RELEASE</version> </dependency>
同時若是在html頁面使用還須要在html增長一行web
<html xmlns:th="http://www.thymeleaf.org">
3、測試spring
這裏建立了一個Controller和一個html.Thymeleaf的屬性都是用的默認的屬性值,若是須要改變能夠在resources/application.properties下更改,前綴名是spring.thymeleaf。編程
package com.example.demo; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; //@RestController @Controller public class HelloController { @RequestMapping(value = "/hello",method = RequestMethod.GET) public String hello(Model model) { model.addAttribute("name", "Cuiyw"); return "hello"; } }
<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>hello</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <p th:text="'Hello!, ' + ${name} + '!'" ></p> </body> </html>