2

私はJerseyJavaとTomcatを使用してRESTサービスを作成しています。これが私の質問です-@PathParamスラッシュを含む2つの変数を受け入れるにはどうすればよいですか?つまりenrollment/{id}/{name}、idはi124/af23/asf「bob / thatcher」、nameは「bob/thatcher」にすることができます。

@GET 
@Path("enrollment/{id}/{name}")
public String enrollPerson(@PathParam("id") String id, @PathParam("name") String name) {
    System.out.println(name +  " " + id);
    return("Enrolled!");
}

私はこの質問を見ました:Tomcat、JAX-RS、Jersey、@ PathParam:ドットとスラッシュを渡す方法は?これは私の質問の一部に答えましたが、スラッシュを含む1つのパラメーターを持つための解決策を提供しました(スラッシュ付きの2つのパラメーターがあります)。

どんな助けでもいただければ幸いです!

4

1 に答える 1

4

答えは、送信する前に文字列をURLエンコードしてから、メソッドで文字列をURLデコードすることだと思います。したがって、私の方法は次のようになります。

@GET 
@Path("enrollment/{id}/{name}")
public String enrollPerson(@PathParam("id") String id, @PathParam("name") String name) {
    String decodedName = URLDecoder.decode(name, "UTF-8");
    String decodedId = URLDecoder.decode(id, "UTF-8");
    System.out.println(decodedName + " " + decodedId);
    return("Enrolled!");
}
于 2012-10-26T19:08:45.590 に答える