页面静态化--Thymeleaf (3)

看下面的案例:

<h2> <p>Name: <span th:text="${user.name}">Jack</span>.</p> <p>Age: <span th:text="${user.age}">21</span>.</p> <p>friend: <span th:text="${user.friend.name}">Rose</span>.</p> </h2>

我们获取用户的所有信息,分别展示。

当数据量比较多的时候,频繁的写user.就会非常麻烦。

因此,Thymeleaf提供了自定义变量来解决:

示例:

<h2 th:object="${user}"> <p>Name: <span th:text="*{name}">Jack</span>.</p> <p>Age: <span th:text="*{age}">21</span>.</p> <p>friend: <span th:text="*{friend.name}">Rose</span>.</p> </h2>

首先在 h2上 用 th:object="${user}"获取user的值,并且保存

然后,在h2内部的任意元素上,可以通过 *{属性名}的方式,来获取user中的属性,这样就省去了大量的user.前缀了

4.3.方法

ognl表达式中的方法调用

ognl表达式本身就支持方法调用,例如:

<h2 th:object="${user}"> <p>FirstName: <span th:text="*{name.split(' ')[0]}">Jack</span>.</p> <p>LastName: <span th:text="*{name.split(' ')[1]}">Li</span>.</p> </h2>

这里我们调用了name(是一个字符串)的split方法。

Thymeleaf内置对象

Thymeleaf中提供了一些内置对象,并且在这些对象中提供了一些方法,方便我们来调用。获取这些对象,需要使用#对象名来引用。

一些环境相关对象

对象 作用
#ctx   获取Thymeleaf自己的Context对象  
#requset   如果是web程序,可以获取HttpServletRequest对象  
#response   如果是web程序,可以获取HttpServletReponse对象  
#session   如果是web程序,可以获取HttpSession对象  
#servletContext   如果是web程序,可以获取HttpServletContext对象  
   

Thymeleaf提供的全局对象:

对象 作用
#dates   处理java.util.date的工具对象  
#calendars   处理java.util.calendar的工具对象  
#numbers   用来对数字格式化的方法  
#strings   用来处理字符串的方法  
#bools   用来判断布尔值的方法  
#arrays   用来护理数组的方法  
#lists   用来处理List集合的方法  
#sets   用来处理set集合的方法  
#maps   用来处理map集合的方法  

举例

我们在环境变量中添加日期类型对象

@GetMapping("show3") public String show3(Model model){ model.addAttribute("today", new Date()); return "show3"; }

在页面中处理

<p> 今天是: <span th:text="${#dates.format(today,'yyyy-MM-dd')}">2020-04-12</span> </p>

效果:

页面静态化--Thymeleaf

4.4 字面值

有的时候,我们需要在指令中填写基本类型如:字符串、数值、布尔等,并不希望被Thymeleaf解析为变量,这个时候称为字面值。

字符串字面值

使用一对'引用的内容就是字符串字面值了:

<p> 你正在观看 <span th:text="'thymeleaf'">template</span> 的字符串常量值. </p>

th:text中的thymeleaf并不会被认为是变量,而是一个字符串

页面静态化--Thymeleaf

数字字面值

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzdxp.html