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
目录
相关文章
|
9天前
|
前端开发 小程序 Java
uniapp上传图片 前端以及java后端代码实现
uniapp上传图片 前端以及java后端代码实现
23 0
|
21天前
|
Java
有关Java发送邮件信息(支持附件、html文件模板发送)
有关Java发送邮件信息(支持附件、html文件模板发送)
23 1
|
29天前
|
存储 Java 容器
JAVA基本语法
JAVA基本语法
15 0
|
1月前
|
Java
Java代码设定固定模板
Java代码设定固定模板
13 0
|
28天前
|
弹性计算 前端开发 小程序
微信小程序上传文件至阿里云OSS直传(java后端签名+前端直传)
当前的通用文件上传方式是通过前端上传到服务器,再由服务器转存至对象存储。这种方式在处理小文件时效率尚可,但大文件上传因受限于服务器带宽,速度较慢。例如,一个100MB的文件在5Mbps带宽的阿里云ECS上上传至服务器需160秒。为解决此问题,可以采用后端签名的方式,使微信小程序直接上传文件到阿里云OSS,绕过服务器中转。具体操作包括在JAVA后端引入相关依赖,生成签名,并在微信小程序前端使用这个签名进行文件上传,注意设置正确的请求头和formData参数。这样能提高大文件上传的速度。
|
8天前
|
Java
java发送微信公众号模板消息
java发送微信公众号模板消息
|
4天前
|
存储 安全 Java
Java语法掌握:打好编程基础的关键(二)
Java语法掌握:打好编程基础的关键
25 0
|
4天前
|
存储 Java
Java语法掌握:打好编程基础的关键(一)
Java语法掌握:打好编程基础的关键
10 0
Java语法掌握:打好编程基础的关键(一)