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

有帮助吗?

解决方案

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字符串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