将数组或列表传递给@Pathvariable-Spring/Java

我在 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]

当我这样做的时候,我得到了一个错误:

Lang. IllegalStateException: 在@RequestMapping 中找不到@Pathvariable [ firstNameIds ]

108957 次浏览

可以执行@PathVariableString 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
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进行测试)

如果要使用方括号-[]

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进行测试)

你应该这样做:

电话:

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";
}

首先,把这个输入到你的代码中(Add@Pathvariable) :

@GetMapping(path="/test/{firstNameIds}",produces = {"application/json"})
public String test(@PathVariable List<String> firstNameIds)
{
return "Dummy";
}

你会进去: Http://localhost:8080/public/test/agent,xxx,yyyy