繁体   English   中英

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

[英]Passing an Array or List to @Pathvariable - Spring/Java

我正在 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 String ids,然后解析字符串。

所以像:

@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

首先,把它放在你的代码中(添加@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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM