Thymeleaf菜鳥教程詳解

隨着Java Web應用程序的普及,前端開發越來越重要。Thymeleaf是一種前端模板引擎,可以將數據與 HTML 的表現層進行綁定,同時保持代碼的優雅和清晰。

一、優點

1、模板自然(Natural Template)

Thymeleaf 模板引擎通過自然模板實現數據綁定,可以避免JSP中各種Java代碼的情況,寫起來更加舒適自然,更易讀更易維護。

 <html>
     <body>
         <h1 th:text="${title}">頁面標題</h1>
         <p th:text="${content}">內容區域內容區域內容區域</p>
     </body>
 </html>

2、支持HTML5標準

Thymeleaf 在設計時考慮了 HTML 的語法規則,所以在開發過程中,使用 Thymeleaf 不用擔心 XHTL 的語法問題。

3、開箱即用

使用 Spring Boot 框架和 Thymeleaf 模板,可以輕鬆快速地啟動項目,您會發現您無需花費大量時間和精力進行項目的構建。

二、常用方法

1、文本輸出

 <span th:text="${name}">[name]</span>
 <p>[[${name}]]</p>

2、判斷語句

 <span th:if="${name != null}">[[${name}]]</span>
 <span th:unless="${name == null}">[[${name}]]</span>
 <ul>
     <li th:each="product : ${products}">
         <p th:text="${product.name}">商品名稱</p>
         <p th:text="${product.price}">商品價格</p>
     </li>
 </ul>

3、鏈接處理和表單處理

 <a th:href="@{/home}">home</a>
 <form th:action="@{/login}" method="post">
     <input type="text" name="username" id="username" />
     <input type="password" name="password" id="password" />
     <input type="submit" value="Submit" />
 </form>

三、Thymeleaf模板

Thymeleaf 模板引擎通過自然模板實現數據綁定,下面是一個簡單的模板。

 <!DOCTYPE html>
 <html xmlns:th="http://www.thymeleaf.org">
     <head>
         <meta charset="UTF-8" />
         <title th:text="${title}">頁面標題</title>
     </head>
     <body>
         <div th:replace="fragments/header :: header" />
         <div th:replace="fragments/footer :: footer" />
     </body>
 </html>

在代碼中使用

 <div th:insert="fragments/header :: header"></div>
 <div th:replace="fragments/footer :: footer"></div>

四、SpringMVC + Thymeleaf框架項目

1、配置Thymeleaf模板引擎,並設置視圖解析器

 @Autowired
 private WebApplicationContext webApplicationContext;

 @Bean
 public ITemplateResolver templateResolver() {
     SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
     resolver.setApplicationContext(webApplicationContext);
     resolver.setCharacterEncoding("UTF-8");
     resolver.setTemplateMode(TemplateMode.HTML);
     resolver.setCacheable(false);
     return resolver;
 }

 @Bean
 public SpringTemplateEngine templateEngine() {
     SpringTemplateEngine engine = new SpringTemplateEngine();
     engine.setTemplateResolver(templateResolver());
     return engine;
 }

 @Bean
 public ViewResolver viewResolver() {
     ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
     viewResolver.setTemplateEngine(templateEngine());
     viewResolver.setCharacterEncoding("UTF-8");
     viewResolver.setOrder(0);
     viewResolver.setViewNames(new String[] {"*"});
     viewResolver.setCache(false);
     viewResolver.setRedirectContextRelative(false);
     return viewResolver;
 }

2、實體類與控制器

 public class User {
     private Integer id;
     private String name;
     private String password;       
     // getter setter
 }

@Controller
public class UserController {
    @RequestMapping("/user")
    public ModelAndView getUser(){
        ModelAndView modelAndView = new ModelAndView();
        List users = new ArrayList();
        modelAndView.addObject("userList",users);
        modelAndView.setViewName("user");
        return modelAndView;
    }
}

3、模板

 <!DOCTYPE html>
 <html xmlns:th="http://www.thymeleaf.org">
     <head>
         <title>Spring MVC + Thymeleaf</title>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
     </head>
     <body>
         <!--表格-->
         <table>
             <tr th:each="user : ${userList}">
                 <td th:text="${user.id}">id</td>
                 <td th:text="${user.name}">name</td>
                 <td th:text="${user.password}">password</td>
             </tr>
         </table>
     </body>
 </html>

五、總結

本篇文章講解了Thymeleaf的基本使用方式、優點、常用方法以及實戰操作,在開發中可以根據實際需求加深對Thymeleaf的使用。Thymeleaf讓前端和後端工作能夠更加協調,提高了前後端協同開發的效率。

原創文章,作者:QBBEQ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/331940.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
QBBEQ的頭像QBBEQ
上一篇 2025-01-20 14:10
下一篇 2025-01-20 14:10

相關推薦

  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變量類型,而是在變量第一次賦值時自動識別該變量的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬盤。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Qt雷達探測教程

    本文主要介紹如何使用Qt開發雷達探測程序,並展示一個簡單的雷達探測示例。 一、環境準備 在開始本教程之前,需要確保你的開發環境已經安裝Qt和Qt Creator。如果沒有安裝,可以…

    編程 2025-04-29
  • 猿編程python免費全套教程400集

    想要學習Python編程嗎?猿編程python免費全套教程400集是一個不錯的選擇!下面我們來詳細了解一下這個教程。 一、課程內容 猿編程python免費全套教程400集包含了從P…

    編程 2025-04-29
  • Python煙花教程

    Python煙花代碼在近年來越來越受到人們的歡迎,因為它可以讓我們在終端里玩煙花,不僅具有視覺美感,還可以通過代碼實現動畫和音效。本教程將詳細介紹Python煙花代碼的實現原理和模…

    編程 2025-04-29
  • 使用Snare服務收集日誌:完整教程

    本教程將介紹如何使用Snare服務收集Windows服務器上的日誌,並將其發送到遠程服務器進行集中管理。 一、安裝和配置Snare 1、下載Snare安裝程序並安裝。 https:…

    編程 2025-04-29
  • Python畫K線教程

    本教程將從以下幾個方面詳細介紹Python畫K線的方法及技巧,包括數據處理、圖表繪製、基本設置等等。 一、數據處理 1、獲取數據 在Python中可以使用Pandas庫獲取K線數據…

    編程 2025-04-28
  • Python語言程序設計教程PDF趙璐百度網盤介紹

    Python語言程序設計教程PDF趙璐百度網盤是一本介紹Python語言編程的入門教材,本文將從以下幾個方面對其進行詳細闡述。 一、Python語言的特點 Python語言屬於解釋…

    編程 2025-04-28

發表回復

登錄後才能評論