JAVA - Thymeleaf

spring 集成了 Thymeleaf 模板引擎,本文对此作些许介绍

方言
Thymeleaf 提供了灵活接口,允许使用方定制自己的方言。因此在自定义方言之前,有必要先了解标准方言。

标准表达式
${…} : 变量表达式.
*{…} : 区域选择表达式.
#{…} : 消息国际化表达式.
@{…} : 链接表达式.
~{…} : 代码段表达式.
Variable
变量表达式通常是 OGNL

${session.user.name}
Thymeleaf

等价 SpringEL 或 OGNL

((Book)context.getVariable(“book”)).getAuthor().getName()
从上下文读取迭代

  • 选择表达式 类似下面这样,通常是在子区域内选择当前上下文,类似 go 模板中的.
  • *{customer.name}
    完整示例

    ... ... ...
    等价于

    {
    // th:object="${book}"
    final Book selection = (Book) context.getVariable(“book”);
    // th:text="*{title}"
    output(selection.getTitle());
    }
    国际化
    通常会依赖键定位读取本地.properties 文件中对应语言的消息

    #{main.title}
    #{message.entrycreated(${entryId})}
    在模板中是这样

    ... ...
    ... ...
    当然键亦可使用变量

    #{ c o n f i g . a d m i n W e l c o m e K e y ( {config.adminWelcomeKey}( config.adminWelcomeKey({session.user.name})}
    链接表达式
    基于 webserver 上下文为根路径生成,假定根路径 /myapp


    对应


    保持会话


    带参 url


    结果可能是这样


    相对服务器的链接,应用上下文前缀不被添加


    基于协议的绝对路径


    片段表达式
    有时部会添加或替换一段 java 代码 th:insert 或 th:replace

    ...

    你可能感兴趣的:(JAVA,java,mvvm,rhythmbox)