知乎專欄 | 多維度架構 | | | 微信號 netkiller-ebook | | | QQ群:128659835 請註明“讀者” |
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
創建目錄 src/main/resources/templates/ 用戶存放模板檔案
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
package cn.netkiller.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping("/") public class HelloController { @GetMapping("/hello") // 如果此處使用 @ResponseBody,將會返回 "hello" 字元串,而不是模板 public String test() { return "hello"; } @RequestMapping("/hello1") public String hello1(Map<String, Object> map) { // 傳遞參數測試 map.put("name", "Neo"); return "thymeleaf"; } @RequestMapping("/hello2") public ModelAndView hello2() { ModelAndView mv = new ModelAndView(); mv.addObject("name", "Amy"); mv.setViewName("thymeleaf"); return mv; } @RequestMapping(value = "/{name}", method = RequestMethod.GET) public String getMovie(@PathVariable String name, ModelMap model) { model.addAttribute("name", name); return "hello"; } }
在 src/main/resources/templates/ 目錄下創建模板檔案 hello.html
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8" /> <title>Spring MVC + Thymeleaf Example</title> </head> <body> <h1>Welcome to Thymeleaf</h1> <span th:text="${name}"></span> </body> </html>