質問

私はJBoss/Springで簡単な'get'をやっています。私はクライアントが私にurlの整数の配列を渡したいと思っています。サーバー上でそれを設定するにはどうすればよいですか?そして、クライアントがメッセージを送信する必要があることを示しますか?

これは私が今持っているものです。

@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable List<Integer> firstNameIds)
{
     //What do I do??
     return "Dummy"; 
}

クライアントでは、次のようなものを渡したいと思います

http://localhost:8080/public/test/[1,3,4,50]

私がそれをしたとき、私はエラーを取得します:

ジャバ。ラングIllegalStateException:@RequestMappingで@PathVariable[firstNameIds]が見つかりませんでした

役に立ちましたか?

解決

GET http://localhost:8080/public/test/1,2,3,4

@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable String[] firstNameIds)
{
    // firstNameIds: [1,2,3,4]
    return "Dummy"; 
}
.

(Spring MVC 4.0.1でテスト済み)

他のヒント

あなたはこのようなことをするべきです:

コール:

GET http://localhost:8080/public/test/1,2,3,4

お使いのコントローラ:

@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable List<Integer> firstNameIds) {
     //Example: pring your params
     for(Integer param : firstNameIds) {
        System.out.println("id: " + param);
     }
     return "Dummy";
}

角括弧を使いたい場合 - []

DELETE http://localhost:8080/public/test/[1,2,3,4]

@RequestMapping(value="/test/[{firstNameIds}]", method=RequestMethod.DELETE)
@ResponseBody
public String test(@PathVariable String[] firstNameIds)
{
    // firstNameIds: [1,2,3,4]
    return "Dummy"; 
}
.

(Spring MVC 4.1.1でテスト済み)

@PathVariable String IDを実行でき、文字列を解析します。

だからのようなもの:

@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable String firstNameIds)
{
     String[] ids = firstNameIds.split(",");
     return "Dummy"; 
}
.

あなたは渡す:

http://localhost:8080/public/test/1,3,4,50
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top