java前端模板Thymeleaf常用语法

简介: java前端模板Thymeleaf常用语法

1、在html页面中引入模板。

<html xmlns:th="http://www.thymeleaf.org">

2、需要引入css时,代码如下:(js与其类似)

<link th:href="@{/css/a.css}" type="text/css" rel="stylesheet">

3、对于某些页面,我们需要引入其他公共页面的话,在需要引入的区域使用include,如下:

<div th:include="img::${frag}"></div>
//img表示另一个页面的(/路径/文件名去掉后缀),

${frag}表示后台动态传入的fragment名字,我传入的是img,他是另一个页面的fragment名,传入的页面img.html如下:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">//注:这句引入必须要有。
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div th:fragment="img">//${frag}的值为fragment的值
    这是模板图片:
    <img th:src="@{/img/a.png}">
</div>
</body>
</html>

4、如果需要对后台传过来的时间进行格式化,如下:

<p th:text="${#dates.format(time,'yyyy-MM-dd hh:mm:ss')}"></p>
//结果为  2019-04-01 12:55:24

如果不进行格式化,代码如下:

<h3 th:text="${time}"></h3>
 //结果为Mon Apr 01 12:55:24 CST 2019 显然可读性差

5、对文本进行替换,两种方式,任选:

<span th:text="'welcome to our application, '+${user.phone}"></span>
<span th:text="|welcome to our application,${user.phone}|"></span>

6、后台传过来list集合的话,如何循环遍历呢?

<table>
    <tr th:each="li:${list}">//li为别名,${list}为后台传过来的集合名
        <td th:text="${li.phone}"></td>
        <td th:text="${li.password}"></td>
    </tr>
</table>

7、对数据判断,根据不同的数据类型使用不同的方法,如:对后台传过来的string类型,我们用strings:

<p th:text="${#strings.isEmpty(user.password)?'暂无信息':user.password}"></p>

//为空显示前者:‘暂无信息’,不为空显示string字段。

对于list或者set,代码类似

<p th:if="${#lists.isEmpty(list)}"></p>
<p th:if="${#sets.isEmpty(list)}"></p>

8、根据后台传过来的数据进行区分,分别显示不同的内容,可以用if或者switch。

(1)if 后面跟的内容为真,显示对应的,unless刚好相反。

<div th:if="${user.phone=='18438595560'}">//判断为真显示
    不错不错
</div>
<div th:unless="${user.phone=='18438595560'}">//判断为假显示
    不错不错
</div>

如果user.phone从后台传过来是‘18438595560’(我的手机号),则前者显示,后者不显示。

(2)if多条件与switch类型。

<div th:if="${aaa>5}">正确</div>
<div th:if="${aaa<5}">错误</div>

(3)switch的用法如下,肯定需要与case搭配。

<div th:switch="${user.phone}">
    <p th:case="18438595562">
       是健康女朋友的号码
    </p>
    <p th:case="18438595560">
        是健康的号码
    </p>
    <p>

当然,我们也可以加default

<P th:default>
        是其他健康不认识的人的号码
</P>

上面可以用下面的替换,与default效果一致:

<P th:case="*">
     是其他健康不认识的人的号码
    </P>

9、select语句,动态加载。

 <select>
        <option th:each="u:${list}" //遍历的集合,u为别名
        th:value="${u.phone}" //select的值,此时的optiion值为电话
        th:text="${u.phone}" //页面显示的文本
        th:selected="${u.phone==user.phone}"> //默认选择的内容
        </option>
    </select>

实际效果如下:

image.png

10、动态加载图片,语法如下:

<img th:src="@{/img/{img}(img=${img})}">

如果图片没有拿到,我们为了美观需要默认的图片。可以这样:

<img th:src="@{/{img}(img=${img})}"
 th:"'this.src=\'' + @{'/img/ss.gif'} + '\''">

th:onerror语法是当前面的图片,从后台拿不到时,我们使用ss.gif替换。

11、提交form表单,我们我们也可以用thymeleaf的语法。

 <form th:action="@{/bb}" th:object="${user}" method="post" th:method="post">
        <input type="text" th:field="*{phone}"/>//field上传的字段名字
        <input type="text" th:field="*{password}">
        <input type="submit">
    </form>

th:object="${user}",表示我们提交的内容为user对象,在后台直接接收user就行了,下面的字段phone,password都能拿到。

12、为了避免冲突,在前端,一下符合也需要改动。(注:分号不可省)

(1)< ;小于

(2)>;大于

(3)&equals 等于

(4)&le; 小于等于

(5)&ge; 大于等于

 <h2>This is &lt;小于</h2>
    <h2>This is &gt;大于/h2>
    <h2>This is &equals;;等于/h2>
    <h2>This is &le;,小于等于/h2>
    <h2>This is &ge;大于等</h2>
13、数据格式化实例

(1)保留两位小数,整数位自动:

<span th:text="${#numbers.formatDecimal(price,0,2)}">34</span>
 //结果为  11.00

(2)保留两位小数,整数位三位。

<span th:text="${#numbers.formatDecimal(price,3,2)}">34</span>
 结果为: 011.00
目录
相关文章
|
2月前
|
Java Apache Maven
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
文章提供了使用Apache POI库在Java中创建和读取Excel文件的详细代码示例,包括写入数据到Excel和从Excel读取数据的方法。
65 6
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
|
2月前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
本系列教程笔记详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。若需快速学习Kotlin,建议查看“简洁”系列教程。本期重点介绍了Kotlin与Java的共存方式,包括属性、单例对象、默认参数方法、包方法、扩展方法以及内部类和成员的互操作性。通过这些内容,帮助你在项目中更好地结合使用这两种语言。
53 1
|
2月前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
37 2
|
26天前
|
Java
java do while 的语法怎么用?
java do while 的语法怎么用?
39 3
|
1月前
|
前端开发 JavaScript 开发者
超实用开源前端商城模板,助力电商项目飞速启航!免费直接可用!
分享一款精心设计的开源前端商城模板,涵盖商品展示、购物车、订单处理、用户登录注册等核心功能,使用HTML、CSS、JS和jQuery构建,结构清晰,适合新手和资深开发者,助力电商项目快速启动。
83 0
超实用开源前端商城模板,助力电商项目飞速启航!免费直接可用!
|
1月前
|
JSON 缓存 前端开发
个人练习前端技术使用Bootstrap、JQuery、thymeleaf
个人练习前端技术使用Bootstrap、JQuery、thymeleaf
35 3
|
2月前
|
搜索推荐 Java 数据库连接
Java|在 IDEA 里自动生成 MyBatis 模板代码
基于 MyBatis 开发的项目,新增数据库表以后,总是需要编写对应的 Entity、Mapper 和 Service 等等 Class 的代码,这些都是重复的工作,我们可以想一些办法来自动生成这些代码。
41 6
|
2月前
|
JSON 前端开发 Java
震惊!图文并茂——Java后端如何响应不同格式的数据给前端(带源码)
文章介绍了Java后端如何使用Spring Boot框架响应不同格式的数据给前端,包括返回静态页面、数据、HTML代码片段、JSON对象、设置状态码和响应的Header。
164 1
震惊!图文并茂——Java后端如何响应不同格式的数据给前端(带源码)
|
2月前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
本系列教程详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。对于希望快速学习Kotlin的用户,推荐查看“简洁”系列教程。本文档重点介绍了Kotlin与Java混编的技巧,包括代码转换、类调用、ProGuard问题、Android library开发建议以及在Kotlin和Java之间互相调用的方法。
34 1
|
2月前
|
安全 Java 编译器
Kotlin语法笔记(27) -Kotlin 与 Java 共存(二)
本教程详细讲解Kotlin语法,适合希望深入了解Kotlin的开发者。若需快速入门,建议查阅“简洁”系列教程。本文重点探讨Kotlin与Java共存的高级话题,包括属性访问、空安全、泛型处理、同步机制及SAM转换等,助你在项目中逐步引入Kotlin。
30 1