阅读更多
Thymeleaf 2.0正式版发布了。



Thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个基于Apache License 2.0许可的开源Java库,由Daniel Fernández(Java加密库Jasypt的作者)创建。Thymeleaf提供了两个版本,分别是Standard dialects(标准方言)和SpringStandard dialects(Spring标准方言,即Spring MVC 3),用户还可以通过创建自定义方言进行扩展。

Thymeleaf提供了一个用于整合Spring MVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf旨在提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可。接下来,这些标签属性就会在DOM(文档对象模型)上执行预先制定好的逻辑。

此次发布的2.0版本包含了大量的改进:

  • 性能提升:该版本包含一个完全重写的模板执行引擎,以及一个几乎重新设计的内部架构,性能较1.1版本有了大幅提升。
  • 在standard dialects 版本中新增了th:switch/th:case属性,th:switch属性与Java语言中的switch语句类似。
  • 在th:remove属性中添加了all-but-first值,可有效节省一些重复代码。
  • 在错误信息中显示错误位置的行号。
  • DOM选择器。
  • 处理不完整模板:之前的Thymeleaf不能处理不完整的XML文件,这限制了Thymeleaf在需要处理片段或高级UI部件情况下的使用,2.0中解决了这个问题。
  • 完全普遍化了之前版本中已经出现的缓存基础架构。
  • 在Standard dialects中新增了XHTML DTDs。
此外,该版本针对自定义Thymeleaf扩展的用户,进行了一些改进,详细信息参阅:What's new in Thymeleaf 2.0

依赖性:

  • Java SE 5 或更高版本
  • ognl 3.0 或更高版本
  • javassist 3.14.0-GA 或更高版本
  • slf4j 1.6.1 或更高版本
项目官网http://www.thymeleaf.org/

下载地址http://www.thymeleaf.org/download.html

  • 大小: 11.2 KB
1
0
评论 共 7 条 请登录后发表评论
7 楼 javamonkey 2012-02-10 13:58
这个我开发beetl也可以,原则之一就是降低模板语言对原有文件低侵入性
对于6楼的例子,

<tr th:each="prod : ${allProducts}">
      <td th:text="${prod.name}">Oranges</td>
      <td th:text="${#numbers.formatDecimal(prod.price,1,2)}">0.99</td>
</tr>   

可以在beetl里这么解决
<!--:for(prod  in allProducts){ -->
    <tr ">
      <td >${prod.name}</td>
      <td >${prod.price,number=".##}</td>
</tr>
<!--:}-->

另外html页面通头部和尾部通常在公共的文件里,如果用别的模板语言,则会破坏html,如果是beetl,可以这么做
<!--:includeFT("./footer.html"){ -->
<div id="footter">
这是尾部内容,仍然保留原有内容,但在beetl运行的时候,会用./foooter.html替换
</div>
<!--:}-->

如果对beetl有兴趣,可以访问beetl博客
http://beetl.lofter.com/

6 楼 pure 2012-02-10 12:34
pure 写道
lshoo 写道
相比Velocity、FreeMarker有哪些优势?

官方好像有说明,最大的优点在于不破坏页面排版,是作为标签属性来使用,这个是最大的不同,其它的看说明吧。

<table>
  <thead>
    <tr>
      <th th:text="#{msgs.headers.name}">Name</th>
      <th th:text="#{msgs.headers.price}">Price</th>
    </tr>
  </thead>
  <tbody>
    <tr th:each="prod : ${allProducts}">
      <td th:text="${prod.name}">Oranges</td>
      <td th:text="${#numbers.formatDecimal(prod.price,1,2)}">0.99</td>
    </tr>
  </tbody>
</table>
5 楼 pure 2012-02-10 12:32
lshoo 写道
相比Velocity、FreeMarker有哪些优势?

官方好像有说明,最大的优点在于不破坏页面排版,是作为标签属性来使用,这个是最大的不同,其它的看说明吧。
4 楼 lshoo 2012-02-10 09:54
有springmvc3版本,估计能完美集成的。
3 楼 tedeum 2012-02-10 09:18
lshoo 写道
相比Velocity、FreeMarker有哪些优势?

同问,另外可以和spring mvc集成吗
2 楼 lshoo 2012-02-09 21:28
相比Velocity、FreeMarker有哪些优势?
1 楼 TSheep 2012-02-09 16:47
强烈向大家推荐这个,很不错

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 必学Java类库/常用Java类库大全(awesome-java)

    完整资源地址:http://www.21doc.net/java/awesomejava 对象映射 简化对象映射的框架。 Dozer - 使用注释,API或XML配置将...MapStruct - 代码生成器,它简化了不同bean类型之间的映射,基于配置方法的约定。 Mode...

  • Java 框架、库和软件的精选列表(Awesome Java)

    原创翻译,原始链接 本文为awesome系列中的awesome java 文章目录项目Bean映射构建字节码操作缓存CLI集群管理代码分析代码覆盖率代码生成器编译器计算机视觉配置约束满足问题求解器CSV数据结构数据库日期和时间依赖...

  • Java资源大全中文版(Awesome最新版)

    :新一代的开源 BPM 引擎,核心是基于 Java 的超快速、超稳定的 BPMN 2.0 流程引擎,强调流程服务的可嵌入性和可扩展性。  官网   下载 经典的工具与库 (Ancients) In existence since the beginning of time and ...

  • Java资源大全(组件、工具等)

    转载 : https://github.com/akullpp/awesome-java目录业务流程管理套件经典的工具与库 (Ancients)Bean映射 (Bean Mapping)构建工具 (Build)字节码操作 (Bytecode Manipulation)缓存 (Caching)群集管理 (Cluster ...

  • SpringBoot/Spring Cloud/Docker

    ​ 官方: Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。 约定优于配置(Convention over Configuration),又称...

  • Java资源大全中文版(转)

    Java资源大全中文版(Awesome最新版) Awesome系列的Java资源整理。awesome-java就是akullpp发起维护的Java资源列表,内容包括:构建工具、数据库、框架、模板、安全、代码分析、日志、第三方库、书籍、Java 站点...

  • 狂神Vue笔记最全最相同

    狂神说 Vue 笔记 bilibili视频地址 Vue 的核心库只关注视图...Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式JavaScript框架,发布于2014年2月。 与其它大型框架不同的是,Vue 被设计为可以自底向上

  • Spring Boot框架知识总结笔记(超详细,一次性到位)狂神说SpringBoot笔记

    本篇文章是我基于狂神说Spring Boot课程所做的笔记,内容比较多,包含配置文件解释、Thymeleaf、Shiro、JDBC、Mybatis、Swagger、任务、分布式 Dubbo+Zooker等等,如果能耐心看完,想必会有不少收获。

  • SpringBoot

    Spring是解决企业级应用开发的复杂性而创建的,基于POJO的轻量级和最小侵入性编程,IOC和AOP创建一个spring initalizr项目,选择初始化插件Web。 pom.xml文件 将项目打成jar包,点击maven的package后,就会在target...

  • Spring Boot

    微服务论文中文翻译 dubbo SpringBoot 2.7.8要求 工具 Version jdk Java 8 Spring Framework 5.3.25 Maven 3.5+ Gradle 6.8.x, 6.9.x, and 7.x Tomcat 9.0 4.0 Jetty 9.4 3.1 Jetty 10.0 4.0 Undertow 2.0 4.0 2....

  • Vue入门(学习笔记)

    为了让View更纯粹, 还可以使用Thyme leaf、Frree marker等模板引擎, 使模板里无法写入Java代码, 让前后端分工更加清晰。 缺点 前端开发重度依赖开发环境,开发效率低 前后端职责纠缠不清 对前端发挥的局限性:...

  • Vue笔记(狂神说)

    HTML + CSS + JS : 视图 : 给用户看,刷新后台给的数据 网络通信 : axios 页面跳转 : vue-router 状态管理:vuex Vue-UI : ICE , Element UI 1.2、前端三要素 HTML(结构):超文本标记语言(Hyper Text Markup ...

  • 狂神。Vue学习。

    Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目...HTML +

  • spring boot基础学习教程

    spring boot也在2018年3月发布了2.0的正式版本,但是对现在来说还是太新。 使用Maven构建项目 通过SPRING INITIALIZR工具产生基础项目 访问:http://start.spring.io/ 选择构建工具 Maven Project 、 ...

  • SpringBoot入门

    SpringBoot入门1、SpringBoot简介2、SpringBoot特点3、SpringBoot使用场景4、SpringBoot的使用4.1、下载安装STS4.2、创建SpringBoot应用4.3、...配置4.10、整合模板引擎4.10.1、整合Freemarker模板引擎4.10.2、整合Thy

  • 计算机专业Java专业课程实验+CRM客户关系管理系统设计学生课程实验.zip

    学生课程实验:大二计算机专业JAVA专业课的课程实验,设计一个CRM的客户关系管理系统,含项目源码、数据库、以及汇报PPT。 内容目录: ├── readme.txt ├── 基于Java的CRM客户关系管理系统的设计和实现数据库 │ └── crm.sql ├── 基于Java的CRM客户关系管理系统的设计和实现项目源代码 │ └── MyCrm.zip ├── 基于Java的CRM客户关系管理系统的设计和实现项目运行截图 │ ├── 主界面.PNG │ ├── 产品信息管理.PNG │ ├── 客户信息添加.PNG │ ├── 登录.PNG │ └── 角色管理.PNG ├── 视频 │ ├── 1CRM客户关系管理系统_项目的配置以及启动.url │ ├── 2CRM客户关系管理系统_工作桌面_信息中心_邮箱功能_客户管理_订单管理.url │ └── 3CRM客户关系管理系统_财务管理_产品管理_部门管理_岗位管理_数据回收站_权限管.url └── 论文 ├── 基于Java的现代数字化CRM客户关系管理系统答辩ppt.pptx

  • node-v12.17.0-linux-arm64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

  • 常见移动变现术语(mobile monetization).docx

    常见移动变现术语(mobile monetization).docx

  • 废物转运站:决策指南 垃圾转运站:决策指南

    废物转运站:决策指南

  • 冰蓄冷的一些资料.zip

    冰蓄冷的一些资料:包括系统的原理图,设计计算等

Global site tag (gtag.js) - Google Analytics