spring 集成了 Thymeleaf 模板引擎,本文对此作些许介绍
方言
Thymeleaf 提供了灵活接口,允许使用方定制自己的方言。因此在自定义方言之前,有必要先了解标准方言。
标准表达式
${…} : 变量表达式.
*{…} : 区域选择表达式.
#{…} : 消息国际化表达式.
@{…} : 链接表达式.
~{…} : 代码段表达式.
Variable
变量表达式通常是 OGNL
${session.user.name}
Thymeleaf
((Book)context.getVariable(“book”)).getAuthor().getName()
从上下文读取迭代
*{customer.name}
完整示例
{
// th:object="${book}"
final Book selection = (Book) context.getVariable(“book”);
// th:text="*{title}"
output(selection.getTitle());
}
国际化
通常会依赖键定位读取本地.properties 文件中对应语言的消息
#{main.title}
#{message.entrycreated(${entryId})}
在模板中是这样
... | ... |
---|
#{
{session.user.name})}
链接表达式
基于 webserver 上下文为根路径生成,假定根路径 /myapp
…
对应
…
保持会话
…
带参 url
…
结果可能是这样
…
相对服务器的链接,应用上下文前缀不被添加
…
基于协议的绝对路径
…
片段表达式
有时部会添加或替换一段 java 代码 th:insert 或 th:replace