52.2.3. URI テンプレート変数の値の取得


概要

「パスの設定」 で説明されているように、リソースパスには、値に動的にバインドされた変数セグメントを含めることができます。多くの場合、これらの変数パスセグメントは、「URI のパスからのデータ取得」 で説明されているリソースメソッドへのパラメーターとして使用されます。ただし、URI コンテキストを使用してそれらにアクセスすることもできます。

パスパラメーターを取得する方法

UriInfo インターフェイスは、(例52.1「URI コンテキストからパスパラメーターを返すメソッド」 のように) パスパラメーターの一覧を返す 2 つのメソッドを提供します。

例52.1 URI コンテキストからパスパラメーターを返すメソッド

MultivaluedMap<java.lang.String, java.lang.String>getPathParametersMultivaluedMap<java.lang.String, java.lang.String>getPathParametersbooleandecode

パラメーターを取らない getPathParameters() メソッドは、パスパラメーターを自動的にデコードします。URI のデコードを無効にする場合は、getPathParameters(false) を使用します。

値は、テンプレート識別子をキーとして使用してマップに保存されます。たとえば、リソースの URI テンプレートが /{color}/box/{note} の場合、返されるマップには color キーと note キーを持つ 2 つのエントリーがあります。

例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

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.