2016-08-03 8 views
0

私のメソッドに複数のパラメータを渡したいと思います。これはどうすればいいですか?私は私がこれまでJava Rest APIの複数のパラメータJAX-RS - GETメソッド

@GET 
@Produces({MediaType.APPLICATION_JSON}) 
@Path("/{one,two,three}") 

public List<Person> getPeople(@PathParam ("one") String one, @PathParam ("two") String two, @PathParam ("three") String three){ 
    String one = one; 
    String two = two; 
    String three = three; 

} 

これはのparamsをつかみ、私のメソッドに渡すための正しい構文です以下のコードを持っているURLは、このhttp://host/one/two/three/four

見えるようにしたいですか? @Pathで使用されている正規表現を見たことがありますが、わかりません。私は正に、実際には、パラメータを取得し、可能であれば変数に入れることができるようにしたいだけです。パスパラメータの

+1

あなたはパラメータの不確定数を求めているか、固定された数はありますか?あなたの例では3つまで表示されますが、例のURLでは4つまで表示されます。 – gregwhitaker

答えて

4

固定数

@GET 
@Path("/{one}/{two}/{three}") 
@Produces(MediaType.APPLICATION_JSON) 
public Response foo(@PathParam("one") String one, 
        @PathParam("two") String two, 
        @PathParam("three") String three) { 

    ... 
} 

可変数パスパラメータの:

@GET 
@Path("/{path: .+}") 
@Produces(MediaType.APPLICATION_JSON) 
public Response foo(@PathParam("path") String path) { 

    String[] paths = path.split("/"); 

    ... 
} 
+2

@ルーク[documentation](https://jersey.java.net/documentation/latest/jaxrs-resources.html#d0e2193)を確認してください。 –

+1

非常に感謝しています! – Luke

関連する問題