Java学习之Thymeleaf使用

本文介绍了Thymeleaf模板引擎,它是一个用于HTML、XML等的现代Java模板引擎,专注于提供优雅、可维护的模板设计。Thymeleaf的核心库包含标准方言,支持变量表达式、选择表达式、国际化表达式和URL表达式等。在Spring Boot中,配置Thymeleaf并编写Controller,可以使用th:*属性进行文本替换、属性赋值、循环、条件判断等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言
为了后续的代码审计一些常用的框架和技术都是有必要了解一下,在此重拾Spring Boot等开发知识内容。

Thymeleaf简介
Thymeleaf是一个现代的服务器端Java模板引擎的web和独立的环境,能够处理HTML, XML, JavaScript, CSS,甚至纯文本。

Thymeleaf的主要目标是提供一种优雅的和高度可维护的方式来创建模板。为了实现这一点,它构建在自然模板的概念上,以不影响模板作为设计原型使用的方式将其逻辑注入模板文件。这改进了设计的交流,并在设计和开发团队之间架起了桥梁。

Thymeleaf的设计从一开始就考虑了Web标准,尤其是HTML5

Thymeleaf是一个非常可扩展的模板引擎(事实上它可以被称为模板引擎框架),它允许你定义和自定义的方式,你的模板将被处理到一个精细的细节级别。

将一些逻辑应用到标记工件(标记、一些文本、注释,如果模板不是标记,则仅仅是占位符)的对象称为处理程序,这些处理程序的集合—加上一些额外的工件—通常是方言的组成部分。Thymeleaf的核心库提供了一种称为标准方言的方言,这对大多数用户来说应该足够了。

Thymeleaf 基础配置
这里主要以Srping Boot为主

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

在项目的resources\templates目录下创建HTML文件,这里注意导入thymeleaf的命名空间,否则无法进行模板的渲染。

<!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 {//欢迎加入Java开发交流君样:909038429

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

这里的注解需要使用@Controller,不能使用@RestController注解,否则会报错.

如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。

如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

Thymeleaf 语法
类型
1.变量表达式
2.选择或星号表达式
3.文字国际化表达式
4.URL表达式
${…}变量表达式

<span th:text="${book.author.name}">  
<li th:each="book : ${books}">  
@{...} 链接表达式
 @{/order/list} 
 @{/order/details(id=${orderId})}  

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

#{…} 消息表达式

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

*{…} 选择变量表达式

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

#常用th标签
th标签属性

1)th:text:文本替换;

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

3)th:value:属性赋值

4)th:each:遍历循环元素

5)th:if:判断条件,类似的还有th:unless,th:switch,th:case

6)th:insert:代码块引入,类似的还有th:replace,th:include,常用于公共代码块提取的场景

7)th:fragment:定义代码块,方便被th:insert引用

8)th:object:声明变量,一般和*{}一起配合使用,达到偷懒的效果。

9)th:attr:设置标签属性,多个属性可以用逗号分隔
在这里插入图片描述
在这里插入图片描述

内容比较简单,主要作为记录。
image
最新2020整理收集的一些高频面试题(都整理成文档),有很多干货,包含mysql,netty,spring,线程,spring cloud、jvm、源码、算法等详细讲解,也有详细的学习规划图,面试题整理等,需要获取这些内容的朋友请加Q君样:909038429
/./*欢迎加入java交流Q君样:909038429一起吹水聊天

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值