配列またはリストを@Pathvariableに渡す-Spring/Java
-
09-12-2019 - |
質問
私は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
. 所属していません StackOverflow