日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Java学习之Thymeleaf使用

發(fā)布時(shí)間:2023/12/31 综合教程 25 生活家
生活随笔 收集整理的這篇文章主要介紹了 Java学习之Thymeleaf使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Java學(xué)習(xí)之Thymeleaf使用

0x00 前言

為了后續(xù)的代碼審計(jì)一些常用的框架和技術(shù)都是有必要了解一下,在此重拾Spring Boot等開發(fā)知識(shí)內(nèi)容。

0x01 Thymeleaf簡(jiǎn)介

Thymeleaf是一個(gè)現(xiàn)代的服務(wù)器端Java模板引擎的web和獨(dú)立的環(huán)境,能夠處理HTML, XML, JavaScript, CSS,甚至純文本。

Thymeleaf的主要目標(biāo)是提供一種優(yōu)雅的和高度可維護(hù)的方式來創(chuàng)建模板。為了實(shí)現(xiàn)這一點(diǎn),它構(gòu)建在自然模板的概念上,以不影響模板作為設(shè)計(jì)原型使用的方式將其邏輯注入模板文件。這改進(jìn)了設(shè)計(jì)的交流,并在設(shè)計(jì)和開發(fā)團(tuán)隊(duì)之間架起了橋梁。

Thymeleaf的設(shè)計(jì)從一開始就考慮了Web標(biāo)準(zhǔn),尤其是HTML5

Thymeleaf是一個(gè)非常可擴(kuò)展的模板引擎(事實(shí)上它可以被稱為模板引擎框架),它允許你定義和自定義的方式,你的模板將被處理到一個(gè)精細(xì)的細(xì)節(jié)級(jí)別。

將一些邏輯應(yīng)用到標(biāo)記工件(標(biāo)記、一些文本、注釋,如果模板不是標(biāo)記,則僅僅是占位符)的對(duì)象稱為處理程序,這些處理程序的集合—加上一些額外的工件—通常是方言的組成部分。Thymeleaf的核心庫(kù)提供了一種稱為標(biāo)準(zhǔn)方言的方言,這對(duì)大多數(shù)用戶來說應(yīng)該足夠了。

0x02 Thymeleaf 基礎(chǔ)配置

這里主要以Srping Boot為主

<!--引入thymeleaf依賴-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

在項(xiàng)目的resources emplates目錄下創(chuàng)建HTML文件,這里注意導(dǎo)入thymeleaf的命名空間,否則無法進(jìn)行模板的渲染。

<!doctype html>

<!--注意:引入thymeleaf的名稱空間-->
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <p th:text="'hello SpringBoot'">hello thymeleaf</p>
</body>
</html>

編寫Controller

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

@Controller
public class IndexController {

    @GetMapping("home")
    public String index() {
        return "index";
    }
}

這里的注解需要使用@Controller,不能使用@RestController注解,否則會(huì)報(bào)錯(cuò).

如果只是使用@RestController注解Controller,則Controller中的方法無法返回jsp頁面,或者h(yuǎn)tml,配置的視圖解析器 InternalResourceViewResolver不起作用,返回的內(nèi)容就是Return 里的內(nèi)容。

如果需要返回到指定頁面,則需要用 @Controller配合視圖解析器InternalResourceViewResolver才行。
如果需要返回JSON,XML或自定義mediaType內(nèi)容到頁面,則需要在對(duì)應(yīng)的方法上加上@ResponseBody注解。

0x03 Thymeleaf 語法

類型

1.變量表達(dá)式
2.選擇或星號(hào)表達(dá)式
3.文字國(guó)際化表達(dá)式
4.URL表達(dá)式

${...}變量表達(dá)式

<span th:text="${book.author.name}">  
<li th:each="book : ${books}">  

@{...} 鏈接表達(dá)式

 @{/order/list} 
 @{/order/details(id=${orderId})}  

或者是
    
<form th:action="@{/createOrder}">  
<a href="main.html" th:href="@{/main}">

#{...} 消息表達(dá)式

#{main.title}  
#{message.entrycreated(${entryId})}  

*{...} 選擇變量表達(dá)式

<div th:object="${book}">  
...  
<span th:text="*{title}">...</span>  
...  
</div> 

常用th標(biāo)簽

th標(biāo)簽屬性

1)th:text:文本替換;

2)th:utext:支持html的文本替換。

3)th:value:屬性賦值

4)th:each:遍歷循環(huán)元素

5)th:if:判斷條件,類似的還有th:unless,th:switch,th:case

6)th:insert:代碼塊引入,類似的還有th:replace,th:include,常用于公共代碼塊提取的場(chǎng)景

7)th:fragment:定義代碼塊,方便被th:insert引用

8)th:object:聲明變量,一般和*{}一起配合使用,達(dá)到偷懶的效果。

9)th:attr:設(shè)置標(biāo)簽屬性,多個(gè)屬性可以用逗號(hào)分隔

0x04 結(jié)尾

內(nèi)容比較簡(jiǎn)單,主要作為記錄。

WX:TG9yaTI1NDgyNjYxNDU=

歡迎各位師傅來一起做技術(shù)交流

總結(jié)

以上是生活随笔為你收集整理的Java学习之Thymeleaf使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。