1. 程式人生 > >SpringBoot入門十六,新增Thymeleaf模板支援

SpringBoot入門十六,新增Thymeleaf模板支援

專案基本配置參考文章SpringBoot入門一,使用myEclipse新建一個SpringBoot專案,使用myEclipse新建一個SpringBoot專案即可。現在來給專案新增一個log4j2支援,新增方式非常簡單,僅需兩步即可,具體內容如下:

1. pom.xml新增thymeleaf支援

<!-- 3.開啟thymeleaf模板引擎支援 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

2. springboot配置檔案新增thymeleaf配置資訊(spring.mvc.view的檢視解析器就不用了)

#是否開啟快取
spring.thymeleaf.cache=false
#設定不嚴格的html
spring.thymeleaf.mode=LEGACYHTML5
#編碼格式
spring.thymeleaf.encoding=utf-8
#字首,也就是模板存放的路徑
spring.thymeleaf.prefix=/view/
#字尾
spring.thymeleaf.suffix=.html

3.建立一個controller

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.qfx.common.controller.BaseController;
import com.qfx.demo.bean.User;

@Controller
@RequestMapping("thyemleaf")
public class ThymeleafController extends BaseController {

    @RequestMapping("view/first")
    public String firstView(){
        User user = new User();
        user.setUserId("001");
        user.setUserName("張三");
        user.setUserAge(18);
        user.setUserSex(true);

        User user2 = new User();
        user2.setUserId("002");
        user2.setUserName("李四");
        user2.setUserAge(20);
        user2.setUserSex(true);

        User user3 = new User();
        user3.setUserId("003");
        user3.setUserName("柳林");
        user3.setUserAge(16);
        user3.setUserSex(false);
        List<User> userList = new ArrayList<User>();
        userList.add(user);
        userList.add(user2);
        userList.add(user3);

        List<String> list = new ArrayList<String>();
        list.add("123");
        list.add("abc");
        list.add("哈哈哈");
        list.add("((&($*");

        request.setAttribute("msg", "歡迎來到thyemleaf的世界!");
        request.setAttribute("userList", userList);
        request.setAttribute("list", list);

        return "firstPage";
    }
}

4.建立firstPage.html頁面

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>firstPage.html</title>

    <meta name="keywords" content="keyword1,keyword2,keyword3">
    <meta name="description" content="this is my page">
    <meta name="content-type" content="text/html; charset=UTF-8">
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
  </head>

  <body>
  <br/>
    <table align="center" width="50%" border="1" cellpadding="5" cellspacing="0" bordercolor="lime">
        <caption>
            <span style="color: red" th:text="${msg}"></span>
            <select style="width: 100px;">
                <option th:each="user:${userList}" th:value="${user.userId}" th:text="${user.userId}+'_'+${user.userName}"></option>
            </select>
        </caption>
    </table>
    <br/>
    <table align="center" width="50%" border="1" cellpadding="5" cellspacing="0" bordercolor="lime">
        <caption>測試表格元素 </caption>
        <tr>
            <th>下標</th>
            <th>當前迭代數/總數</th>
            <th>是否奇數</th>
            <th>是否偶數</th>
            <th>是否第一個當前迭代</th>
            <th>是否最後一個當前迭代</th>
            <th>值</th>
        </tr>
        <tr th:each="value,state:${list}">
            <td th:text="${state.index}"></td>
            <td th:text="${state.count +'/'+ state.size}"></td>
            <td th:text="${state.odd}"></td>
            <td th:text="${state.even}"></td>
            <td th:text="${state.first}"></td>
            <td th:text="${state.last}"></td>
            <td th:text="${value}"></td>
        </tr>
    </table>
    <br/>
    <table align="center" width="50%" border="1" cellpadding="5" cellspacing="0" bordercolor="lime">
        <caption>使用者資訊</caption>
        <tr>
            <th>當前編號/總數</th>
            <th>ID</th>
            <th>姓名</th>
            <th>年齡</th>
            <th>性別</th>
        </tr>
        <tr th:each="user,state:${userList}">
            <td th:text="${state.count +'/'+ state.size}"></td>
            <td th:text="${user.userId}"></td>
            <td th:text="${user.userName}"></td>
            <td th:text="${user.userAge}"></td>
            <td th:text="${user.userSex ? '男':'女'}"></td>
        </tr>
    </table>
  </body>
</html>

5.頁面展示效果如下

SpringBoot入門十六,新增Thymeleaf模板支援

6.thymeleaf參考

6.1 thymeleaf參考手冊
6.2 Thymeleaf 模板引擎中文文件
6.3 Thymeleaf的 th:* 屬性之—— th: ->設值& 遍歷迭代& 條件判斷