springboot(四)thymeleaf使用详解

thymeleaf介绍

简单说,Thymeleaf是一个跟Velocity、FreeMarker类似的模板引擎,它完全可以替代JSP,相比较其他的模板引擎,它有以下三个特点:

  • –1 Thymeleaf在有网络和无网络的环境下都可以运行,它可以让美工在浏览器查看到页面的静态效果,也可以让程序在服务器查看带数据的动态页面效果, 这是由于它支持html原型, 然后在html标签里增加额外的属性来达到模板+数据的展示方式,浏览器介绍html是会胡烈未定义的标签属性,所以thymeleaf的模板可以静态的运行;当有数据返回到页面时,thymeleaf标签会动态的替换到静态内容,使页面动态显示.
  • –2 Thymeleaf开箱即用的特性 它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、OGNL表达式效果,避免每天套用模板,改jstl、改标签的困扰,同时开发人员也可以扩展和创建自定义的方面.
  • –3 Thymeleaf提供spring标准方言和一个与SpringMVC完美集成的可选模块,可以快速实现表单绑定、属性编辑器、国际化等功能

标准表达式语法

  • –1 变量表达式
  • –2 选择或性好表达式
  • –3 文字国际化表达
  • –4 URL表达式
变量表达式

变量表达式即OGNL表达式或Spring EL表达式(在Spring术语中也叫model atrributes),如下图所示:

${session.user.name}

它们将以HTML标签的一个属性来表示

<span th:text="${book.author.name}">  
<li th:each="book : ${books}">  
选择(星号)表达式

选择表达式很想变量表达式,不过他们用 一个预先选择的对象来代替上下文变量容器(map)来执行,如下:

*{customer.name}

被指定的object由th:object属性定义

<div th:object="${book}">  
      ...  
      <span th:text="*{title}">...</span>  
      ...  
    </div> 
文字国际化表达式

文字国际化表达式允许我们从一个外部文件获取区域文字信息(.properties), 用key索引Value, 还可以提供一组参数(可选).

 #{main.title}  
 #{message.entrycreated(${entryId})}  

可以在模板文件中找到这样的表达式代码:

    <table>  
      ...  
      <th th:text="#{header.address.city}">...</th>  
      <th th:text="#{header.address.country}">...</th>  
      ...  
    </table>  
URL表达式

URL表达式指的是把一个有用的上下文或回话信息添加到URL,这个过程经常被叫做URL重写

@{/order/lsit}

URL还可以设置参数

@{/oeder/details(id=${orderId}))}

相对路径

@{../document/report}
变量表达式和星号有什么区别么?

–如果不考虑上下文的情况,两者没有区别, 星号语法评估在选定对象上,而不是整个上下文.
什么是选定对象? 就是父标签的值,如下:

  <div th:object="${session.user}">
    <p>Name: <span th:text="*{firstName}">Sebastian</span>.</p>
    <p>Surname: <span th:text="*{lastName}">Pepper</span>.</p>
    <p>Nationality: <span th:text="*{nationality}">Saturn</span>.</p>
  </div>

这完全是等价于

<div th:object="${session.user}">
	  <p>Name: <span th:text="${session.user.firstName}">Sebastian</span>.</p>
	  <p>Surname: <span th:text="${session.user.lastName}">Pepper</span>.</p>
	  <p>Nationality: <span th:text="${session.user.nationality}">Saturn</span>.</p>
  </div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值