Java学习之Thymeleaf使用

Java学习之Thymeleaf使用0x00前言为了后续的代码审计一些常用的框架和技术都是有必要了解一下,在此重拾SpringBoot等开发知识内容。0x01Thymeleaf简介Thy

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

Java学习之Thymeleaf使用

0x00 前言

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

0x01 Thymeleaf简介

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

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

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

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

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

0x02 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 {

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

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

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

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

0x03 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})}  

*{…} 选择变量表达式

<div th:object="${book}">  
...  
<span 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:设置标签属性,多个属性可以用逗号分隔

Java学习之Thymeleaf使用

Java学习之Thymeleaf使用

0x04 结尾

内容比较简单,主要作为记录。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119885.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea激活码永久2021最新【2021最新】

    (idea激活码永久2021最新)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1STL5S9V8F-eyJsaWNlb…

    2022年3月27日
    86
  • quartz定时任务不执行(任务统筹策略)

    由于某种原因,例如应用停掉,导致定时任务错过了本该执行的时间点,这就是定时任务过期。对于过期的定时任务,我们需要基于某种策略对其进行处理。过期策略在Trigger接口中定义了两种过期策略,publicstaticfinalintMISFIRE_INSTRUCTION_SMART_POLICY=0;publicstaticfinalintMISF…

    2022年4月11日
    1.5K
  • 正则表达式不包含某些字符_js匹配正则表达式的方法

    正则表达式不包含某些字符_js匹配正则表达式的方法问题:去除字符串中的标签,但不包括

    Nooneshouldbealoneintheiroldage.

    ‘.replace(/<((?!br).)*?>/g,”)//结果”Nooneshouldbealoneintheiroldage.

    2022年9月19日
    4
  • 国内常用公共DNS服务器、各省运营商DNS服务器汇总

    原文  http://www.francissoung.com/2016/03/14/常用公共DNS服务器/主题 DNS服务器 服务器 运营商不知道大家有没有过网络是正常的,QQ可以正常登录、游戏也可以正常玩,但是网页无论如何都打不开。这就是电脑网络设置的DNS服务器有问题,不是其故障就是不工作了。换了DNS服务器成功解决问题。下边给大家分享一下国内比较大型大众常用

    2022年4月17日
    439
  • pycharm选择运行环境_安卓漂亮的界面

    pycharm选择运行环境_安卓漂亮的界面手把手教你配置最漂亮的PyCharm界面,Python程序员必备!简介:高逼格超美的IDE界面,是每个程序员的梦想!随着人工智能/机器学习的兴起,Python作为一门“漂亮的语言”,再次获得广大程序员的关注。而JetBrains出品的PyCharm无疑是最好用的PythonIDE之一。俗话说“工欲善其事,必先利其器”,把自己的IDE配置得既有逼格又好看,这是每个Python程序员必备的技能。推荐给大家一个学习交流的地方:719+139+688,本文就手把手的教你,如何把自己的PyCharm配置的

    2022年8月28日
    30
  • 试简述分组交换的要点第七版_简单描述分组交换的过程

    试简述分组交换的要点第七版_简单描述分组交换的过程《计算机网络》谢希仁著第四版课后习题答案答:(1)报文分组,加首部(2)经路由器储存转发(3)在目的地合并

    2022年8月2日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号