类 UriTemplate
java.lang.Object
cn.taketoday.web.util.UriTemplate
- 所有已实现的接口:
Serializable
Representation of a URI template that can be expanded with URI variables via
expand(Map), expand(Object[]), or matched to a URL via
match(String). This class is designed to be thread-safe and
reusable, and allows any number of expand or match calls.
Note: this class uses UriComponentsBuilder
internally to expand URI templates, and is merely a shortcut for already
prepared URI templates. For more dynamic preparation and extra flexibility,
e.g. around URI encoding, consider using UriComponentsBuilder or the
higher level DefaultUriBuilderFactory which adds several encoding
modes on top of UriComponentsBuilder. See the
reference docs
for further details.
- 从以下版本开始:
- 3.0
- 作者:
- Arjen Poutsma, Juergen Hoeller, Rossen Stoyanchev
- 另请参阅:
-
嵌套类概要
嵌套类修饰符和类型类说明private static final classHelper to extract variable names and regex for matching to actual URLs. -
字段概要
字段 -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明Given an array of variables, expand this template into a full URI.Given the Map of variables, expands this template into a URI.Return the names of the variables in the template, in order.Match the given URI to a map of variable values.booleanIndicate whether the given URI matches this template.toString()
-
字段详细资料
-
uriTemplate
-
uriComponents
-
variableNames
-
matchPattern
-
-
构造器详细资料
-
UriTemplate
Construct a newUriTemplatewith the given URI String.- 参数:
uriTemplate- the URI template string
-
-
方法详细资料
-
getVariableNames
Return the names of the variables in the template, in order.- 返回:
- the template variable names
-
expand
Given the Map of variables, expands this template into a URI. The Map keys represent variable names, the Map values variable values. The order of variables is not significant.Example:
UriTemplate template = new UriTemplate("https://example.com/hotels/{hotel}/bookings/{booking}"); Map<String, String> uriVariables = new HashMap<String, String>(); uriVariables.put("booking", "42"); uriVariables.put("hotel", "Rest & Relax"); System.out.println(template.expand(uriVariables));will print:https://example.com/hotels/Rest%20%26%20Relax/bookings/42- 参数:
uriVariables- the map of URI variables- 返回:
- the expanded URI
- 抛出:
IllegalArgumentException- ifuriVariablesisnull; or if it does not contain values for all the variable names
-
expand
Given an array of variables, expand this template into a full URI. The array represent variable values. The order of variables is significant.Example:
UriTemplate template = new UriTemplate("https://example.com/hotels/{hotel}/bookings/{booking}"); System.out.println(template.expand("Rest & Relax", 42));will print:https://example.com/hotels/Rest%20%26%20Relax/bookings/42- 参数:
uriVariableValues- the array of URI variables- 返回:
- the expanded URI
- 抛出:
IllegalArgumentException- ifuriVariablesisnullor if it does not contain sufficient variables
-
matches
Indicate whether the given URI matches this template.- 参数:
uri- the URI to match to- 返回:
trueif it matches;falseotherwise
-
match
Match the given URI to a map of variable values. Keys in the returned map are variable names, values are variable values, as occurred in the given URI.Example:
UriTemplate template = new UriTemplate("https://example.com/hotels/{hotel}/bookings/{booking}"); System.out.println(template.match("https://example.com/hotels/1/bookings/42"));will print:{hotel=1, booking=42}- 参数:
uri- the URI to match to- 返回:
- a map of variable values
-
toString
-