一、内置对象
官方文档: Thymeleaf 3.0 基础对象
七大基础对象:
${#ctx} 上下文对象,可用于获取其它内置对象。
${#param}: 上下文参数变量。
${#locale}:上下文区域语言设置对象。
${#request}: HttpServletRequest对象。
${#response}: HttpServletResponse对象。
${#session}: HttpSession对象。
${#servletContext}: ServletContext对象。
用法示例
为了演示数据,我们在后端向thymeleaf模板传参的时候,使用不同的对象容器。并注意下图中的参数名称:name1、name2、name3、name4。
上图所示对应的代码:
@GetMapping("/thymeleaf")
public String index(@RequestParam String name1,
HttpServletRequest request,
Model model){
List<ArticleVO> articles = articleService.getAll();
request.setAttribute("name2","curry");
request.getSession().setAttribute("name3","james");
request.getServletContext().setAttribute("name4","jordan");
model.addAttribute("articles", articles);//模版名称,实际的目录为:resources/templates/thymeleaftemp.htmlreturn"thymeleaftemp";}
在thymeleaf模板模板中接收参数
<h1>ThymeLeaf内置对象</h1><br/>语言国家: <span th:text="${#locale.getLanguage() + '_' + #locale.getCountry()}"></span><br/>param: <span th:text="${param.name1}"></span><br/>request: <span th:text="${name2}"></span><br/>session: <span th:text="${session.name3}"></span><br/>application:<span th:text="${application.name4}"></span><br/>session包含name3属性么(如不包含显示zoo):<span th:text="${session.name3}?:('zoo')"></span><br/>session包含属性数量:<span th:text="${session.size()}"></span><br/>session是空的么:<span th:text="${session.isEmpty()}"></span>
访问:http://localhost:8888/template/thymeleaf?name1=zimug , 注意URL中的name1参数,浏览器数据的显示效果如下:
二、 常用的工具类:
官方文档: Thymeleaf 3.0 工具类
#strings:字符串工具类
#lists:List 工具类
#arrays:数组工具类
#sets:Set 工具类
#maps:常用Map方法。
#objects:一般对象类,通常用来判断非空
#bools:常用的布尔方法。
#execInfo:获取页面模板的处理信息。
#messages:在变量表达式中获取外部消息的方法,与使用#{...}语法获取的方法相同。
#uris:转义部分URL / URI的方法。
#conversions:用于执行已配置的转换服务的方法。
#dates:时间操作和时间格式化等。
#calendars:用于更复杂时间的格式化。
#numbers:格式化数字对象的方法。
#aggregates:在数组或集合上创建聚合的方法。
#ids:处理可能重复的id属性的方法。
用法举例:
date工具类之日期格式化
使用默认的日期格式(toString方法) 并不是我们预期的格式:Mon Dec 03 23:16:50 CST 2018
此时可以通过时间工具类#dates来对日期进行格式化:2018-12-03 23:16:50
<td th:text="${#dates.format(item.createTime,'yyyy-MM-dd HH:mm:ss')}"></td>
首字母大写
${#strings.capitalizeWords(str)}
list方法
/*
* 计算list集合中元素数量
*/
${#lists.size(list)}/*
* 检查集合是否是空的
*/
${#lists.isEmpty(list)}