JAVA - Thymeleaf

本文介绍了Spring如何集成Thymeleaf模板引擎,重点讲解Thymeleaf的方言定制和标准表达式,如变量表达式、国际化、链接及片段表达式的使用方法,提供了一个完整的示例来展示其在实际应用中的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

    ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值