52.2.3. 获取 URI 模板变量的值


概述

“设置路径”一节 所述,资源路径可以包含绑定到动态的值的变量片段。这些变量路径片段通常用作资源方法的参数,如 “从 URI 的路径获取数据”一节 所述。但是,您还可以通过 URI 上下文访问它们。

获取路径参数的方法

UriInfo 接口提供了 例 52.1 “从 URI 上下文返回路径参数的方法” 的两个方法,它返回路径参数列表。

例 52.1. 从 URI 上下文返回路径参数的方法

MultivaluedMap<java.lang.String, java.lang.String&gt;getPathParametersMultivaluedMap<java.lang.String, java.lang.String&gt;getPathParametersbooleandecode

不使用任何参数的 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");
  }
}
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.