JAVA – Thymeleaf

时间:2020-7-28 作者:admin


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})}
    在模板中是这样

    当然键亦可使用变量

    #{

    config.adminWelcomeKey({config.adminWelcomeKey}(

    {session.user.name})}
    链接表达式
    基于 webserver 上下文为根路径生成,假定根路径 /myapp


    对应


    保持会话


    带参 url


    结果可能是这样


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


    基于协议的绝对路径


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


    声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。