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
目录
相关文章
|
8月前
|
存储 Java 容器
Java基本语法详解
本文深入讲解了Java编程的基础语法,涵盖数据类型、运算符、控制结构及数组等核心内容,帮助初学者构建坚实的编程基础。
|
7月前
|
存储 SQL NoSQL
Redis-常用语法以及java互联实践案例
本文详细介绍了Redis的数据结构、常用命令及其Java客户端的使用,涵盖String、Hash、List、Set、SortedSet等数据类型及操作,同时提供了Jedis和Spring Boot Data Redis的实战示例,帮助开发者快速掌握Redis在实际项目中的应用。
554 1
Redis-常用语法以及java互联实践案例
|
7月前
|
Java
Java基础语法与面向对象
重载(Overload)指同一类中方法名相同、参数列表不同,与返回值无关;重写(Override)指子类重新实现父类方法,方法名和参数列表必须相同,返回类型兼容。重载发生在同类,重写发生在继承关系中。
198 1
|
9月前
|
Java 数据库连接 数据库
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
本文全面总结了Java核心知识点,涵盖基础语法、面向对象、集合框架、并发编程、网络编程及主流框架如Spring生态、MyBatis等,结合JVM原理与性能优化技巧,并通过一个学生信息管理系统的实战案例,帮助你快速掌握Java开发技能,适合Java学习与面试准备。
397 2
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
|
设计模式 前端开发 搜索推荐
前端必须掌握的设计模式——模板模式
模板模式(Template Pattern)是一种行为型设计模式,父类定义固定流程和步骤顺序,子类通过继承并重写特定方法实现具体步骤。适用于具有固定结构或流程的场景,如组装汽车、包装礼物等。举例来说,公司年会节目征集时,蜘蛛侠定义了歌曲的四个步骤:前奏、主歌、副歌、结尾。金刚狼和绿巨人根据此模板设计各自的表演内容。通过抽象类定义通用逻辑,子类实现个性化行为,从而减少重复代码。模板模式还支持钩子方法,允许跳过某些步骤,增加灵活性。
879 11
|
前端开发 Java 物联网
智慧班牌源码,采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署
智慧班牌系统是一款基于信息化与物联网技术的校园管理工具,集成电子屏显示、人脸识别及数据交互功能,实现班级信息展示、智能考勤与家校互通。系统采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署与私有化定制。核心功能涵盖信息发布、考勤管理、教务处理及数据分析,助力校园文化建设与教学优化。其综合性和可扩展性有效打破数据孤岛,提升交互体验并降低管理成本,适用于日常教学、考试管理和应急场景,为智慧校园建设提供全面解决方案。
653 70
|
8月前
|
算法 Java 测试技术
零基础学 Java: 从语法入门到企业级项目实战的详细学习路线解析
本文为零基础学习者提供完整的Java学习路线,涵盖语法基础、面向对象编程、数据结构与算法、多线程、JVM原理、Spring框架、Spring Boot及项目实战,助你从入门到进阶,系统掌握Java编程技能,提升实战开发能力。
512 0
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
本系列教程笔记详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。若需快速学习Kotlin,建议查看“简洁”系列教程。本期重点介绍了Kotlin与Java的共存方式,包括属性、单例对象、默认参数方法、包方法、扩展方法以及内部类和成员的互操作性。通过这些内容,帮助你在项目中更好地结合使用这两种语言。
223 1
|
9月前
|
存储 安全 Java
从基础语法到实战应用的 Java 入门必备知识全解析
本文介绍了Java入门必备知识,涵盖开发环境搭建、基础语法、面向对象编程、集合框架、异常处理、多线程和IO流等内容,结合实例帮助新手快速掌握Java核心概念与应用技巧。
222 0
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
下一篇
开通oss服务