Thymeleaf模板引擎实战教程
需积分: 14 158 浏览量
更新于2024-09-09
收藏 5KB TXT 举报
"thymeleaf用法举例"
Thymeleaf是一个流行的Java模板引擎,用于在Web应用程序中处理HTML。它允许开发者在静态HTML中添加表达式,这些表达式在服务器端被解析并替换为实际的值。Thymeleaf的主要优点是它可以提供离线的、静态的HTML模板,使得在开发和设计阶段可以无需服务器即可查看页面样式。
1. 数字格式化:
在示例中,`th:text="${#numbers.formatDecimal(product.price,1,2)}"` 是用来将商品价格转换为具有两位小数的格式。`#numbers.formatDecimal()` 是Thymeleaf提供的一个内置函数,它接受两个参数:要格式化的数字(在这里是`product.price`)和小数位数(1表示一位小数,2表示两位小数)。所以如果`product.price`为850,则显示结果为850.00。
2. 日期格式化:
`th:text="${#dates.format(product.availableFrom,'dd-MMM-yyyy')}"` 和 `th:text="${#dates.format(product.availableFrom,'yyyy-MM-ddhh:ss:mm')}"` 展示了如何格式化日期。`#dates.format()` 函数用于将日期对象转换为指定格式的字符串。第一个例子使用了 'dd-MMM-yyyy' 格式,如 "18-Feb-2013",而第二个例子则使用了 'yyyy-MM-ddhh:ss:mm' 格式,如 "2013-02-1812:00:00"。
3. 文本表达式:
- `th:text="${'$'+#numbers.formatDecimal(product.price,1,2)}"` 会将货币符号与格式化的价格连接,形成如 "$850.00" 的显示。
- `th:text="'Hello'+${customerName}+'!'"` 和其他几个示例展示了如何在文本中插入变量。在这个例子中,它会显示 "Hello Peter!",其中 `customerName` 被替换为 "Peter"。
- 使用不同的分隔符(`_`, `|`) 来插入变量,例如 `th:text="'Hello__${customerName}__!'"` 和 `th:text="|Hello${customerName}!|"`, 这些分隔符会被变量替换后的值替换。
4. 国际化 (i18n):
在Thymeleaf中,可以使用 `#{...}` 表达式来引用消息资源文件中的键。示例中的 `messages_en.properties` 文件包含了多个键值对,如 `tutorial.exercise4` 和 `product.info`。在HTML模板中,这些键可以用来显示对应的语言字符串。例如,`th:text="#{tutorial.exercise4}"` 会获取 `messages_en.properties` 中对应的值,并将其显示在HTML元素内。
5. HTML转义:
`th:text="${html}"` 示例展示了如何在模板中安全地包含HTML内容。Thymeleaf默认会自动转义HTML实体以防止跨站脚本(XSS)攻击,但如果你想在页面上显示原始HTML,可以使用这个属性来防止转义。
Thymeleaf提供了丰富的功能,包括数据格式化、变量插入、国际化支持以及HTML安全处理,这些都是构建动态、交互式Web界面的关键工具。通过学习和理解这些基本用法,开发者可以更有效地创建出具有高度可维护性和用户体验的Web应用。
2018-12-01 上传
2018-09-27 上传
2020-08-30 上传
2018-04-26 上传
2023-04-19 上传
2023-08-17 上传
点击了解资源详情
2023-05-11 上传
孤独的记事本
- 粉丝: 1
- 资源: 32
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫