ジャージーでセミコロンで区切られたPathParamをマップするにはどうすればよいですか?

mjn:

このパラメータースタイルを使用する方法はありますか。

/ products / 123; 456; 789

ジャージーとJAX-RSで?PathParamを使用すると、リストの最初のパラメーターのみが返されます。セミコロンをエスケープしようとしましたが、ジャージーは最初のパラメーターリストエントリの値として「123; 456; 789」のみを返します

GETメソッドを次のように宣言しました

public List<Product> getClichedMessage(@PathParam("ids") List<String> idList)

更新:私はJersey 1.1.5のJerseyユーザーガイド参照しています

一般に、メソッドパラメータのJavaタイプは(...)4)List、Set、またはSortedSetであり、Tは上記の2または3を満たします。結果のコレクションは読み取り専用です。(...)パラメータには、同じ名前の複数の値が含まれる場合があります。この場合、4)のタイプを使用してすべての値を取得できます。

更新:ここに私のテストコードがあります:

package de.betabeans.resources;

import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;

@Path("/test")
public class TestResource {

    @GET
    @Path("/{ids}")
    @Produces({"text/plain"})
    public String getClichedMessage(@PathParam("ids") List<String> idList) {
        return "size=" + idList.size();
    }

}

セミコロンをエスケープしたテストURL:http:// localhost:8080 / resources / test / 1%3B2%3B3

更新:Jersey 1.3の変更ログには、次の情報が含まれています。

修正された問題540
http://java.net/jira/browse/JERSEY-540パラメータ化されたタイプのList / Set / SortedSetは、たとえば@QueryParam( "d")List>などのパラメータでサポートされています。StringReaderProviderが登録されている場合タイプリストをサポートします。

この投稿http://comments.gmane.org/gmane.comp.java.jersey.user/7545に基づいてStringReaderProviderをチェックします。

タログ:

セミコロンを使用する場合は、マトリックスパラメーターを作成します@MatrixParamまたはPathSegment使用して取得できます。例:

 public String get(@PathParam("param") PathSegment pathSegment)

マトリックスパラメーターは、元のパラメーターに続くものであることに注意してください。したがって、「123; 456; 789」の場合-123はパスパラメータですが、456および789はマトリックスパラメータの名前です。

したがって、IDで製品を取得したい場合は、次のようにすることができます。

public List<Product> getClichedMessage(@PathParam("ids") PathSegment pathSegment) {
    Set<String> ids = pathSegment.getMatrixParameters().keySet();
    // continue coding
}

あなたのURLは /products/ids;123;456;789

実際、IMOはあまり良い設計ではありません。マトリックスパラメーター名を値として使用します。クエリパラメータを使用する方が良いと思います:/products?id=123&id=456&id=789なので、メソッドで簡単に取得できます。

public List<Product> getClichedMessage(@QueryParam("id") List<String> ids)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

セミコロンで区切られたList <string>からコンマ文字を削除するにはどうすればよいですか?

分類Dev

パンダで列内の値をコンマで区切られた単一の行にマージするにはどうすればよいですか?

分類Dev

コンマ、セミコロン、およびコンマで区切られたフレーズをセミコロンで分割するにはどうすればよいですか?

分類Dev

Git:マージされたコミットを履歴メッセージから削除するにはどうすればよいですか?

分類Dev

mysqlのストアドプロシージャまたは関数からコンマ区切りの値を取得するにはどうすればよいですか?

分類Dev

「このマージが必要な理由を説明するためにコミットメッセージを入力してください」というプロンプトでgitmergeを中止するにはどうすればよいですか。

分類Dev

GitLab:マージコミットメッセージテンプレートを変更するにはどうすればよいですか?

分類Dev

セミコロンで区切られたtxtファイルから2番目の列を取得するにはどうすればよいですか?

分類Dev

セル内のセミコロンで区切られた値を計算するにはどうすればよいですか?

分類Dev

セミコロンで区切られた文字列を文字列とは別の項目に分割するにはどうすればよいですか?

分類Dev

foreachでコンマで区切られた配列のグループを再構築するにはどうすればよいですか?

分類Dev

PRからマージコミットを削除するにはどうすればよいですか?

分類Dev

SVNコミットメッセージログを更新するにはどうすればよいですか?

分類Dev

Excelスプレッドシートをセミコロンで区切られた値ファイルとして保存するにはどうすればよいですか?

分類Dev

コロンで区切られたフィールドを分割してアクセスするにはどうすればよいですか?

分類Dev

コンマで区切られた列を解析するにはどうすればよいですか?

分類Dev

Pythonでマルチプロセッシングモジュールを適切に利用するにはどうすればよいですか?

分類Dev

Rでコンマで区切られたパターン化された変数の文字列を取得するにはどうすればよいですか?

分類Dev

(メッセンジャー)プレビューからスクリプトコードを削除するにはどうすればよいですか?

分類Dev

Regex.Replaceメソッドと引用符でコンマで区切られた文字列をラップするにはどうすればよいですか?

分類Dev

Python 3でスペースとキャリッジリターンで区切られた複数の入力セットを取得するにはどうすればよいですか?

分類Dev

プロトコルバッファメッセージのシーケンスを区切り、逆方向と順方向の両方で読み取れるようにするにはどうすればよいですか?

分類Dev

レンジャーファイルマネージャーでコピー操作をキャンセルするにはどうすればよいですか?

分類Dev

Android内でSPPBluetooth接続を介してメッセンジャーipcプロトコルを使用するにはどうすればよいですか?

分類Dev

Rの長いコマンドからプロシージャを作成するにはどうすればよいですか?

分類Dev

SQL Serverの新しいレコードにコンマで区切られた値を取得するにはどうすればよいですか?

分類Dev

GitHubでコミットメッセージを検索するにはどうすればよいですか?

分類Dev

BitBucketでコミットメッセージを検索するにはどうすればよいですか?

分類Dev

svnでコミットメッセージを編集するにはどうすればよいですか?

Related 関連記事

  1. 1

    セミコロンで区切られたList <string>からコンマ文字を削除するにはどうすればよいですか?

  2. 2

    パンダで列内の値をコンマで区切られた単一の行にマージするにはどうすればよいですか?

  3. 3

    コンマ、セミコロン、およびコンマで区切られたフレーズをセミコロンで分割するにはどうすればよいですか?

  4. 4

    Git:マージされたコミットを履歴メッセージから削除するにはどうすればよいですか?

  5. 5

    mysqlのストアドプロシージャまたは関数からコンマ区切りの値を取得するにはどうすればよいですか?

  6. 6

    「このマージが必要な理由を説明するためにコミットメッセージを入力してください」というプロンプトでgitmergeを中止するにはどうすればよいですか。

  7. 7

    GitLab:マージコミットメッセージテンプレートを変更するにはどうすればよいですか?

  8. 8

    セミコロンで区切られたtxtファイルから2番目の列を取得するにはどうすればよいですか?

  9. 9

    セル内のセミコロンで区切られた値を計算するにはどうすればよいですか?

  10. 10

    セミコロンで区切られた文字列を文字列とは別の項目に分割するにはどうすればよいですか?

  11. 11

    foreachでコンマで区切られた配列のグループを再構築するにはどうすればよいですか?

  12. 12

    PRからマージコミットを削除するにはどうすればよいですか?

  13. 13

    SVNコミットメッセージログを更新するにはどうすればよいですか?

  14. 14

    Excelスプレッドシートをセミコロンで区切られた値ファイルとして保存するにはどうすればよいですか?

  15. 15

    コロンで区切られたフィールドを分割してアクセスするにはどうすればよいですか?

  16. 16

    コンマで区切られた列を解析するにはどうすればよいですか?

  17. 17

    Pythonでマルチプロセッシングモジュールを適切に利用するにはどうすればよいですか?

  18. 18

    Rでコンマで区切られたパターン化された変数の文字列を取得するにはどうすればよいですか?

  19. 19

    (メッセンジャー)プレビューからスクリプトコードを削除するにはどうすればよいですか?

  20. 20

    Regex.Replaceメソッドと引用符でコンマで区切られた文字列をラップするにはどうすればよいですか?

  21. 21

    Python 3でスペースとキャリッジリターンで区切られた複数の入力セットを取得するにはどうすればよいですか?

  22. 22

    プロトコルバッファメッセージのシーケンスを区切り、逆方向と順方向の両方で読み取れるようにするにはどうすればよいですか?

  23. 23

    レンジャーファイルマネージャーでコピー操作をキャンセルするにはどうすればよいですか?

  24. 24

    Android内でSPPBluetooth接続を介してメッセンジャーipcプロトコルを使用するにはどうすればよいですか?

  25. 25

    Rの長いコマンドからプロシージャを作成するにはどうすればよいですか?

  26. 26

    SQL Serverの新しいレコードにコンマで区切られた値を取得するにはどうすればよいですか?

  27. 27

    GitHubでコミットメッセージを検索するにはどうすればよいですか?

  28. 28

    BitBucketでコミットメッセージを検索するにはどうすればよいですか?

  29. 29

    svnでコミットメッセージを編集するにはどうすればよいですか?

ホットタグ

アーカイブ