关于 Thymeleaf
- Thymeleaf 来自哪里?是否有任何软件公司参与开发或支持它?.
- 它稳定吗?可以用于生产环境吗?
- Thymeleaf 提供任何形式的商业支持吗?
- 谁在使用 Thymeleaf?
- 该项目的版本号规则是什么?
- 我如何为 Thymeleaf 做贡献?
- “thymeleaf”如何发音?.
概述
关于 Thymeleaf
Thymeleaf 来自哪里?是否有任何软件公司参与开发或支持它?
Thymeleaf 是开源软件,最初由一位名为 Daniel Fernández 的西班牙软件工程师创建,现在由一群非常棒的人开发和维护。团队成员都是一些非常优秀的人。.
它既不是由任何软件(或其他类型)公司开发,也不受其支持,而是以二进制和源代码两种形式完全免费提供给公众。Apache 许可证 2.0 版本发布.
它稳定吗?可以用于生产环境吗?
是的,所有稳定的(非 beta)版本都可以视为适合生产环境。
Thymeleaf 提供任何形式的商业支持吗?
不提供。目前没有官方的商业支持。
谁在使用 Thymeleaf?
我们的'谁在使用 Thymeleaf?'页面列出了正在自己的产品、项目、网站中使用 Thymeleaf 的公司,甚至有一些将其包含在其专业服务组合中。你也会在那里看到一些下载数据。
该项目的版本号规则是什么?
Thymeleaf 的版本号由三个部分组成:x.y.z
(例如:2.0.1
)。
-
x
是主版本号。该数字的变化意味着核心或架构的重写,或者库的 API 发生了重大变化,这可能会破坏向后兼容性和/或旧版本的支持。 -
y
是次版本号。该数字的变化表示应用了一组适度的更改,增加了新功能和改进,但不会显著地改变 API,并且对所有变更的功能提供过渡期,以便有时间适应新的接口。 -
z
是构建/修复版本号。该数字的变化意味着修复了一些错误或增加了一些性能和文档改进。修复版本不应修改任何 API,因此是即插即用的替换,适用于相同主版本+次版本下的任意先前版本。
我如何为 Thymeleaf 做贡献?
为该项目做贡献的第一个也是最有用的方式是在 StackOverflow 等热门平台上帮助其他用户。StackOverflow。建立更好的社区始终是第一优先事项。
你也可以通过推广 Thymeleaf 来帮忙:在你的博客上写文章,发推文,在你本地的 JUG 上谈论它,甚至只是在你的公司/工作场所与同事开发者讨论它的优势。请帮助传播这个消息。你觉得你奶奶可能感兴趣吗?告诉她吧!:-)
如果你已经在尽力帮助用户和推广方面做了很多努力,但仍觉得你可以做得更多,总有几件事情是非常有用的:
- 帮助测试。再多的测试都不嫌多,而你作为用户的经验对于构建 Thymeleaf 开发者们可能从未想到的有用测试来说极为宝贵。Thymeleaf 有自己的测试库和自己的测试仓库,那里总是欢迎贡献。如果你不确定要测试什么内容,我们可以指导你去最需要你帮助的方向。
- 帮助撰写文档。在文档页面上有一个“文章”板块,总是欢迎新的文章投稿,特别是那些包含完整示例应用的文章。你的名字将作为作者显示在文章上,这样你可以把它加到你的简历中;当然,我们要求你具备高水平的质量和良好的英语语言能力。我们保留了一份主题建议列表此处,但你也总是可以向团队提出你自己的想法。
其他呢?当然,你还可以带来你自己的创意!你可以创建一个GitHub 问题或者直接发邮件给团队团队。我们将很高兴与你一起审查并讨论你的想法。请不要在没有事先与团队讨论的情况下上传带有你喜欢的功能的 Pull Request——Thymeleaf 是一个复杂的项目,需要一定程度的组织管理,即使你付出了大量努力(甚至是好的想法!),我们也可能无法接受你的代码。
最后,请注意所有 Thymeleaf 的资产贡献(代码、文档等)都受到某些条款和条件在接受您提供的任何补丁、文章等内容之前,我们需要您明确同意这些条款(一封电子邮件或GitHub评论即可)。
“thymeleaf”如何发音?
如果你不确定,“Thymeleaf”的发音如下:/ˈtaɪmˌlɪːf/
概述
Thymeleaf 是一个 Web 框架吗?
不是的。它是一个模板引擎。
尽管如此,模板引擎在 Web 框架中扮演着关键角色,并且是其中最重要的组件之一,因为它负责生成用户界面或者视图层(通常以 XHTML 或 HTML 形式呈现)。
Spring MVC, Struts或Apache Wicket是 Web 框架的一些示例,而JSP, Velocity或FreeMarker则是模板引擎的一些示例。
Thymeleaf 能处理哪些类型的模板?
Thymeleaf 模板可以是:
- HTML(HTML5、XHTML 1.0/1.1、HTML 4)
- XML
- TEXT(纯文本)
- JAVASCRIPT(.js 文件)
- CSS(.css 文件)
Thymeleaf 可以完全替代 JSP 和 JSTL 吗?
当然可以。不仅能够做到,我们还强烈建议您这样做。如果您想了解这两种技术的比较方式,请查看我们的Thymeleaf 与 JSP 的对比文章。
Thymeleaf 与其他模板引擎(如 Velocity 或 FreeMarker)相比如何?
两者Velocity和FreeMarker都是非常出色的软件,但它们解决模板问题的理念与 Thymeleaf 有很大不同。
Thymeleaf 强调自然模板化——允许模板作为有效的原型工作,这是另外两个所不具备的功能——而且它的语法试图(可以这么说)更加清洁,并且更贴合当前网页开发的趋势。同样,从架构角度来看,Velocity和FreeMarker都采用顺序文本处理器的方式工作,而 Thymeleaf 基于标记解析技术。这使 Thymeleaf 能够利用基于标记环境(尤其是网络)特有的有趣功能。
无论如何,比较这些技术的最佳方式就是亲自使用它们,然后感受哪一个最适合您。
它可以在非 Web 环境下的非 Web 应用程序中使用吗?
可以。虽然 Thymeleaf(特别是其标准方言)提供了许多在 Web 环境中特别有用的功能,但它也可以用于处理非 Web 的 HTML 或 XML 文档(例如数据 XML),或者其他不是通过 HTTP 发送的模板类型(例如文本/HTML 邮件内容)。
我根本不用 Spring。还能使用 Thymeleaf 吗?
当然可以。Thymeleaf 通过其SpringStandard方言(包含在thymeleaf-spring3
, thymeleaf-spring4
和thymeleaf-spring5
包中)为 Spring MVC 提供了良好的集成,但 Spring 集成是完全可选的,标准方言实际上旨在不依赖 Spring 使用。
如何使用 Thymeleaf 的 SNAPSHOT 版本?
有时,Thymeleaf 会发布一个快照版本,让您测试新功能或正在开发的功能。这些版本是非生产就绪的,但对于大多数测试目的而言足够稳定,并能让您在正式发布前尝试新功能。
要使用快照版本,您需要在 Mavenpom.xml
文件中添加 Sonatype OSS Snapshots 仓库,例如这样:
此外,您还需要修改您的 Thymeleaf 依赖项以使用快照版本,此版本通常由下一版本(不是当前版本)的版本号组成,后面跟着-SNAPSHOT
-SNAPSHOT。例如,如果3.1.3.RELEASE
是最新的已发布稳定版本,则快照很可能出现在3.1.4-SNAPSHOT
甚至3.2.0-SNAPSHOT
这样的版本号下:
Thymeleaf 是如何测试的?
Thymeleaf 拥有自己的测试框架,名为thymeleaf-testing
。该测试框架不仅让 Thymeleaf 团队能够轻松地测试库本身,也允许用户测试他们应用程序的视图层。您可以通过访问网址GitHub.
使用这个测试框架,Thymeleaf 维护着另一个完全专注于测试的 GitHub 存储库。测试、更多测试以及更多的测试。这就是thymeleaf-tests
存储库,您可以在此地址找到它此处。想要一些统计数据吗?截至 2014 年 6 月,thymeleaf-tests
存储库包含了超过 1,300 个测试文件,总计超过 37,000 行测试代码。
此外,我们使用Travis CI实现持续集成,正因如此,每个版本在发布之前都会在无 Spring、Spring 3.0、Spring 3.1、Spring 3.2 和 Spring 4.0 环境下进行测试,并支持 Java 6、Java 7 和 Java 8(遗憾的是 Travis 不支持 Java 5,因此我们需要手动测试)。