Thymeleaf主要使用 org.thymeleaf.expression.Strings 类处理字符串,在模板中使用 #strings 对象来处理字符串。
开发环境:IntelliJ IDEA 2019.2.2
Spring Boot版本:2.1.8
新建一个名称为demo的Spring Boot项目。
1、pom.xml
加入Thymeleaf依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
2、src/main/resources/application.yml
设置模板缓存为false,这样修改html页面后刷新浏览器能马上看到结果
spring: thymeleaf: cache: false
3、src/main/java/com/example/demo/TestController.java
package com.example.demo; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class TestController { @RequestMapping("/") public String test(){ return "test"; } }
4、src/main/resources/templates/test.html
调用参数的toString方法返回字符串 <div th:text="${#strings.toString('hello')}"></div> 返回字符串的长度 <div th:text="${#strings.length('hello')}"></div> 判断是否为空或null <div th:text="${#strings.isEmpty('hello')}"></div> <div th:text="${#strings.isEmpty('')}"></div> <div th:text="${#strings.isEmpty(null)}"></div> 为空或null时设置默认值 <div th:text="${#strings.defaultString('hello','a')}"></div> <div th:text="${#strings.defaultString('','b')}"></div> <div th:text="${#strings.defaultString(null,'c')}"></div> 判断是否包含(区分大小写) <div th:text="${#strings.contains('hello','he')}"></div> <div th:text="${#strings.contains('hello','HE')}"></div> 判断是否包含(忽略大小写) <div th:text="${#strings.containsIgnoreCase('hello','he')}"></div> <div th:text="${#strings.containsIgnoreCase('hello','HE')}"></div> 判断开头和结尾是否包含(区分大小写) <div th:text="${#strings.startsWith('hello','he')}"></div> <div th:text="${#strings.startsWith('hello','HE')}"></div> <div th:text="${#strings.startsWith('hello','el')}"></div> <div th:text="${#strings.endsWith('hello','lo')}"></div> 获取字符串的索引(如果不存在返回-1) <div th:text="${#strings.indexOf('hello','el')}"></div> <div th:text="${#strings.indexOf('hello','ee')}"></div> 指定开始和结束索引,截取字符串(如果索引超过字符串长度,则抛出异常) <div th:text="${#strings.substring('hello',1,3)}"></div> 指定从某个字符串后面截取字符串(如果不包含则返回空字符串) <div th:text="${#strings.substringAfter('hello','e')}"></div> <div th:text="${#strings.substringAfter('hello','ee')}"></div> 指定从某个字符串前面截取字符串(如果不包含则返回空字符串) <div th:text="${#strings.substringBefore('hello','e')}"></div> <div th:text="${#strings.substringBefore('hello','ee')}"></div> 替换字符串 <div th:text="${#strings.replace('hello','e','a')}"></div> 转换为大写 <div th:text="${#strings.toUpperCase('hello')}"></div> 转换为小写 <div th:text="${#strings.toLowerCase('HELLO')}"></div> 首字母转换为大写 <div th:text="${#strings.capitalize('hello')}"></div> 首字母转换为小写 <div th:text="${#strings.unCapitalize('heLLo')}"></div> 每个单词的首字母转为大写 <div th:text="${#strings.capitalizeWords('hello world')}"></div> 根据分隔符将每个单词的首字母转换为大写 <div th:text="${#strings.capitalizeWords('hello-world','-')}"></div> 字符串前面追加 <div th:text="${#strings.prepend('world','hello ')}"></div> 字符串后面追加 <div th:text="${#strings.append('hello',' world')}"></div> 拼接字符串(参数个数不限) <div th:text="${#strings.concat('hello',' world',' !')}"></div> 从第二个参数之后拼接字符串,如果参数为null,则用第一个参数替代 <div th:text="${#strings.concatReplaceNulls('*','hello',null,'world')}"></div> 删除空白 <div th:text="${#strings.trim(' hello ')}"></div> 字符串截取指定长度(最小为3),后面加... <div th:text="${#strings.abbreviate('hello,world', 8)}"></div> 产生指定位数的随机字母数字,范围为大写英文字母加0-9数字 <div th:text="${#strings.randomAlphanumeric(4)}"></div> 调用HtmlEscape类的escapeHtml4Xml方法对参数进行编码 <div th:text="${#strings.escapeXml('<span>hello</span>')}"></div>
浏览器访问:http://localhost:8080
页面输出:
调用参数的toString方法返回字符串 hello 返回字符串的长度 5 判断是否为空或null false true true 为空或null时设置默认值 hello b c 判断是否包含(区分大小写) true false 判断是否包含(忽略大小写) true true 判断开头和结尾是否包含(区分大小写) true false false true 获取字符串的索引(如果不存在返回-1) 1 -1 指定开始和结束索引,截取字符串(如果索引超过字符串长度,则抛出异常) el 指定从某个字符串后面截取字符串(如果不包含则返回空字符串) llo 指定从某个字符串前面截取字符串(如果不包含则返回空字符串) h 替换字符串 hallo 转换为大写 HELLO 转换为小写 hello 首字母转换为大写 Hello 首字母转换为小写 heLLo 每个单词的首字母转为大写 Hello World 根据分隔符将每个单词的首字母转换为大写 Hello-World 字符串前面追加 hello world 字符串后面追加 hello world 拼接字符串(参数个数不限) hello world ! 从第二个参数之后拼接字符串,如果参数为null,则用第一个参数替代 hello*world 删除空白 hello 字符串截取指定长度(最小为3),后面加... hello... 产生指定位数的随机字母数字,范围为大写英文字母加0-9数字 PBAT 调用HtmlEscape类的escapeHtml4Xml方法对参数进行编码 <span>hello</span>