Thymeleaf系列四 生成URL地址和表达式工具对象
2017-06-14 20:15
211 查看
1. 概述
本节的标准表达式语法包含如下内容:生成URL地址:@{}
表达式工具对象:Expression Utility Objects
2. 主代码
2.1. 公共代码
ExpressionsCtl:Control类@Controller @RequestMapping("/expressions") public class ExpressionsCtl { /** * 处理URL * * @param modeMap * @return */ @RequestMapping("/url") public String url(ModelMap modeMap){ modeMap.put("id", "123"); return "expressions/url"; } /** * 表达式工具对象:Expression Utility Objects * */ @RequestMapping("/utility") public String utility(ModelMap modeMap){ return "expressions/utility"; } }
url()方法转到url.html, 包含urls的用法代码; utility()方法转到utility.html,包含表达式工具对象相关代码。
2.2. 生成URL地址@{}
演示如下功能th:href生成的值替换的href值 @{}
url中加入变量值(orderId=${id})做为url的请求参数
==================== 动态生成URL ===============================<br/> <!-- th:href生成的值替换<a>的href值; (orderId=${id})做为url的请求参数 --> http://localhost:8080/gtvg/order/details?orderId=123 --> <a href="details.html" th:href="@{http://localhost:8080/gtvg/order/details(orderId=${id})}">view</a> <br /> <!-- 生成:/order/details?orderId=123 --> /order/details?orderId=123 --> <a href="details.html" th:href="@{/order/details(orderId=${id})}">view</a> <br /> <!-- 替换url中变量值,生成/order/123/details --> /order/123/details --> <a href="details.html" th:href="@{/order/{orderId}/details(orderId=${id})}">view</a> <br />
输出: “–>”的左边是语法,右边是对应的输出(这里以源码方式显示)
==================== 动态生成URL ===============================<br /> <!-- th:href生成的值替换<a>的href值; (orderId=${id})做为url的请求参数 --> http://localhost:8080/gtvg/order/details?orderId=123 --> <a href="http://localhost:8080/gtvg/order/details?orderId=123">view</a> <br /> <!-- 生成:/order/details?orderId=123 --> /order/details?orderId=123 --> <a href="/order/details?orderId=123">view</a> <br /> <!-- 替换url中变量值,生成/order/123/details --> /order/123/details --> <a href="/order/123/details">view</a> <br />
2.3. 表达式工具对象:Expression Utility Objects
thymeleaf有很多工具类,所有工具类如下:#execInfo: information about the template being processed.
#messages: methods for obtaining externalized messages inside variables expressions, in the same way as they would be obtained
using #{…} syntax.
#uris: methods for escaping parts of URLs/URIs
#conversions: methods for executing the configured conversion service (if any).
#dates: methods for java.util.Date objects: formatting,
component extraction, etc.
#calendars: analogous to #dates, but for
java.util.Calendar objects.
#numbers: methods for formatting
numeric objects.
#strings: methods for String objects: contains,
startsWith, prepending/appending, etc.
#objects: methods for objects in general.
#bools: methods for boolean evaluation.
#arrays: methods for arrays.
#lists: methods for lists.
#sets: methods for sets.
#maps: methods for maps.
#aggregates: methods for creating aggregates on arrays or collections.
#ids: methods for dealing with id attributes that might be repeated (for example, as a result of an iteration).
这里只列出#messages,#uris的用法,其它工具类用法见官方的用法详细见这里,
==================== #messages ===============================<br/> <!-- #messages加载外部属性文件的key,对应接口org.thymeleaf.expression.Messages 这里只列出一种用法,其他可以用法也是类似 详细见:http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#messages-1 --> ${#messages.msgOrNull('home.welcome.replace','message')} --> <span th:text="${#messages.msgOrNull('home.welcome.replace','message')}" ></span> <br /> ==================== #uris ===============================<br/> <!-- #uris: URL/URI的工具类,对应接口org.thymeleaf.expression.Uris 详细见: http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#urisurls --> ${#uris.escapePath('http://blog.csdn.net/hry2015/')} --> <span th:text="${#uris.escapePath('http://blog.csdn.net/hry2015/')}" ></span>
输出: “–>”的左边是语法,右边是对应的输出
==================== #messages =============================== ${#messages.msgOrNull('home.welcome.replace','message')} --> welcome thymeleaf, message! ==================== #uris =============================== ${#uris.escapePath('http://blog.csdn.net/hry2015/')} --> http://blog.csdn.net/hry2015/
3. 代码
详细代码见Github相关文章推荐
- 使用正则表达式自动为文本中的url地址生成链接
- 从.net生成的html中找到的一个验证email地址的函数(正则表达式)
- [导入]2006-5-7 ASP VBSCRIPT 正则表达式之 替换 URL 与 EMAIL 地址为热链接 By Stabx
- 超强匹配url地址的正则表达式
- 代码生成工具系列-----代码生成工具(CodeEasy)介绍
- Url地址重写,利用HttpHander手工编译页面并按需生成静态HTML文件
- 利用 apache 的 rewrite 功能生成静态页面URL地址
- Url地址重写利用HttpHander手工编译页面并按需生成静态HTML文件
- Url地址重写,利用HttpHander手工编译页面并按需生成静态HTML文件
- Microsoft Experss 2005 系列开发工具下载地址
- 代码生成工具系列--------(三)根据数据库,生成存储过程
- 2006-5-7 ASP VBSCRIPT 正则表达式之 替换 URL 与 EMAIL 地址为热链接 By Stabx
- 调试工具系列--Javascript正则表达式(regular expression)调试工具(符合w3c)
- 根据url地址生成静态页面
- Url地址重写,利用HttpHander手工编译页面并按需生成静态HTML文件
- 使用hibernate扩展工具Hbm2JavaTask根据配置文件生成持久化对象类(2.1.2)
- VB中用正则表达式判断一个字符串是不是一个URL地址
- [2007最后一博]Url地址重写,利用HttpHander手工编译页面并按需生成静态HTML文件
- Url地址重写,利用HttpHander手工编译页面并按需生成静态HTML文件
- Url地址重写,利用HttpHander手工编译页面并按需生成静态HTML文件