52.2.3. 获取 URI 模板变量的值
概述
如 “设置路径”一节 所述,资源路径可以包含绑定到动态的值的变量片段。这些变量路径片段通常用作资源方法的参数,如 “从 URI 的路径获取数据”一节 所述。但是,您还可以通过 URI 上下文访问它们。
获取路径参数的方法
UriInfo 接口提供了 例 52.1 “从 URI 上下文返回路径参数的方法” 的两个方法,它返回路径参数列表。
例 52.1. 从 URI 上下文返回路径参数的方法
MultivaluedMap<java.lang.String, java.lang.String>
;getPathParameters
MultivaluedMap<java.lang.String, java.lang.String>
;getPathParameters
boolean
decode
不使用任何参数的 getPathParameters ()
方法自动解码路径参数。如果要禁用 URI decoding,请使用 getPathParameters (false)
。
该值使用模板标识符作为键存储在映射中。例如,如果资源的 URI 模板是 /{color}/box/{note},则返回的映射将有两个条目,且带有键 颜色
并记下
。
示例
例 52.2 “从 URI 上下文提取路径参数” 显示使用 URI 上下文检索路径参数的代码。
例 52.2. 从 URI 上下文提取路径参数
import javax.ws.rs.Path; import javax.ws.rs.Get; import javax.ws.rs.core.Context; import javax.ws.rs.core.UriInfo; import javax.ws.rs.core.MultivaluedMap; @Path("/monstersforhire/") public class MonsterService @GET @Path("/{type}/{size}") public Monster getMonster(@Context UriInfo uri) { MultivaluedMap paramMap = uri.getPathParameters(); String type = paramMap.getFirst("type"); String size = paramMap.getFirst("size"); } }