您的位置:

th:text拼接字符串详解

一、th:text属性的基础用法

th:text是在使用thymeleaf模板引擎时,绑定数据用的一个属性,常用于动态输出内容到HTML页面。如下是基本用法:

<p th:text="${variable}">默认值</p>

其中${variable}表示一个表达式,通过引用Controller中的模型数据,可以动态地将模型中的变量输出到页面中。

二、th:text拼接字符串的方法

1.使用+拼接符号

我们可以使用+拼接符号拼接字符串,如下:

<div th:text="'Hello ' + ${name} + '!'"></div>

其中${name}是一个变量,拼接字符串的时候必须使用' '号括起来,并且要在+号两侧加上空格,否则会被解析成数学运算符。

2.使用|拼接符号

我们还可以使用|拼接符号拼接字符串,如下:

<div th:text="|Hello ${name}! How are you doing?|"></div>

这种方法也需要在|两侧加上空格,其中${name}是一个变量,这个方法也可以在拼接时换行。

3.使用#{message}拼接符号

我们还可以使用#{message}拼接符号拼接需要国际化的语言,如下:

<div th:text="#{welcome.message(your.name)}"></div>

它将会从属性文件中查找welcome.message的值,拼接字符串时会将your.name的值填充到占位符中。

三、th:text拼接字符串的局限性

1.只能在文本中使用

使用th:text属性拼接字符串时,必须在文本中使用,不能在属性中使用。如下:

<a th:href="@{|/product/${product.id}|}" th:text="${product.name}"></a>

在a标签的href属性中使用了|拼接符号拼接了一个URL地址,但是在text属性中仍然使用了变量渲染文本。

2.不支持大括号

在拼接字符串时,大括号不会被输出,如下:

<div th:text="{ 'name':${user.name},'age':${user.age} }"></div>

在输出{"name":"Tom","age":18}的时候,不会输出大括号,只会输出配置大括号内的内容。

四、th:text拼接字符串的高级使用

1.使用自定义方法

我们可以使用由自己编写的java类和方法,通过thymeleaf中的工具类调用,实现更复杂的字符串拼接功能。

<div th:text="${@stringUtil.join(',',list)}"></div>

其中,@stringUtil为自定义工具类的类名,join()是该类中的方法名,参数为一个list集合和一个','分隔符。

2.使用下标和长度计算

我们还可以使用thymeleaf内置的工具类,通过下标和长度计算来实现更精细的字符串拼接。

<div th:text="${'Hello '+#arrays.get(nameArr,0)+'!'}"></div>

其中,#arrays是thymeleaf内置的工具类,get()方法用于获取数组中指定下标的元素。

总结

通过本文的讲解,我们学习了th:text拼接字符串的基本用法和高级用法。在实际开发中,字符串的拼接是一个非常常见的操作,通过th:text属性的拼接方法,可以方便地将各种数据渲染为需要的字符串形式,为web应用的开发提供了更多的灵活性。