Thymeleaf学习记录

介绍

  • Jsp 在 JavaWeb 的世界中统治了很长一段时间。但是,由于血统不纯正,表现一般般,许多技术跃跃欲试,欲取代其统治地位, Thymeleaf 就是其中的一位。它是一个跟Velocity、FreeMarker类似的模板引擎

jsp缺点

  • Jsp 标签和 Html 标签混在一起,生成的文档比较混乱
  • 在 Web 浏览器或者 Html 编辑器中,查看未经渲染的 Jsp 页面和预想差别很大
  • Jsp 和 Servlet 紧耦合,只能用在基于 Servlet 的 Web 项目中

Thymeleaf优点

  • 具有开箱即用的特性,不依赖于标签库,能编辑 Html 的地方就能够使用 Thymeleaf。Thymeleaf 很大程度上就是Html, 没有特殊的标签和标签库
  • Thymeleaf 命名空间中的很多属性对应标准的 Html 属性,并且具有相同的名称,但是会渲染一些计算后得到的值。
  • 最大特点就是不需要启动整个web应用,且能正确的显示页面
  • 它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果,同时开发人员也可以扩展和创建自定义的方言

其实优点总结起来就一句话:原型即界面

Thymeleaf缺点

  • 效率不是很高,它的渲染速度比不上 beetl
  • 模板必须符合 xml 规范,调试信息有点不友好
  • Jsp 是基于 Servet 进行数据解析转换形成的 Html, 而 Thymeleaf 则是将所对应的指定显示文件以 DOM 的形式读取为 xml 等并进行数据的解析和赋值后再重新映射到浏览器的
  • 较为复杂的 Thymeleaf 较为消耗 Jvm 内存空间

用法

原理

  • 在 spring 中使用 thymeleaf 需要配置三个视图解析器:
    • ThymeleafViewResolver : 将视图名解析为 Thymeleaf 模板视图
    • SpringTemplateEngine : 处理模板并且渲染结果
    • TemplateResolver : 加载 Thymeleaf 模板,它使用 prefix 和 suffix 属性,将前缀、后缀、逻辑视图名进行结合,进而定位 Thymeleaf 引擎

用法

  • 依赖的jar包:
<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf</artifactId>
    <version>2.1.4</version>
</dependency>
  • 整合spring的时候,依赖的jar:
<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf-spring3</artifactId>
    <version>2.1.4</version>
</dependency>
  • Thymeleaf 的命名空间:
<xmlns:th="http://www.thymeleaf.org">
  • 在Thymelea 中常见的表达式:
    • ${…} : 变量表达式
    • *{…} : 选择表达式
//以上表达式的用法
 <div th:object="${user}">
     <div th:text="*{name}"></div>
     <div th:text="*{age}"></div>
 </div>
 等价于
  <div th:text="${user.name}"></div>
  <div th:text="${user.age}"></div>
等价于
  <div th:text="*{user.name}"></div>
  <div th:text="*{user.age}"></div>
  • @{…}:链接 Url 表达式,同时该标签也能引用静态的文件
<script type="text/javascript" src="@{/js/blog/blog.js}">
<a th:href="@{http://www.baidu.com(pageNumber=${pageNumber})}">用法</a>
  • 其余的标签用法详见官方开发文档:地址

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值