66

JBoss/Spring で単純な「取得」を行っています。クライアントから 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]

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

java.lang.IllegalStateException: @RequestMapping で @PathVariable [firstNameIds] が見つかりませんでした

4

5 に答える 5

42

次のようにする必要があります。

電話:

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";
}
于 2014-10-30T11:51:39.237 に答える
12

角括弧を使用する場合 - []

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 でテスト済み)

于 2014-10-27T04:34:50.023 に答える
3

@PathVariable 文字列 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
于 2012-03-08T21:54:45.273 に答える