4.15 数据转换/格式化

Thymeleaf为变量(${...})和选择(*{...})表达式定义了一种双大括号语法。这种语法允许我们用配置好的转换服务来应用数据转换。

这种语法大致上像这样:

  1. <td th:text="${{user.lastAccessDate}}">...</td>

注意到这里的大括号了嘛?${{...}}。那会通知Thymeleaf把表达式user.lastAccessDate的结果传递给转换服务,并请求它在写出结果之前执行格式化操作(转换为String)。

假设user.lastAccessDatejava.util.Calendar类型,如果一个转换服务(IStandardConversionService的实现)已经注册,而且包含了有效的Calendar -> String转换,那么此转换将会被应用。

IStandardConversionService的默认实现(StandardConversionService类)仅仅执行任何对象上的.toString()方法。关于如何注册一个自定义的转换服务实现,请查看与配置有关的更多内容章节。

  1. 官方的thymeleaf-spring3thymeleaf-spring4整合包用Spring自己的转换服务基础设施,
  2. 透明地集成了Thymeleaf的转换服务机制。
  3. 这样,在Spring配置里声明的转换服务和格式化器将会自动对`${{...}}``*{{...}}`表达式可用。