我正在尝试使用spring mvc在REST post方法的请求主体中传递类似值的List。以下是我的示例代码。请告诉我在请求者中发送列表的正确方法。
@RequestMapping(value = "/userlogin/details", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<String> insertLoginDetails(
@RequestParam("username") String userName,
@RequestBody List<String> listOfID) {
return eventAnalyzerHelper.insertUserLoginDetails(userName,
listOfID);
}
由于
答案 0 :(得分:4)
此示例可能会对您有所帮助
每个text input
都有相同的名称:
<form method="post">
Fruit 1: <input type="text" name="fruits"/><br/>
Fruit 2: <input type="text" name="fruits"/><br/>
Fruit 3: <input type="text" name="fruits"/><br/>
<input type="submit"/>
</form>
在controller’s handler method
上,您可以通过以下方式绑定来获取所有水果名称的列表:
@RequestMapping(value = "/", method = RequestMethod.POST)
public String addFruits(@RequestParam("fruits") List<String> fruits) {
// ...
}
基本上Spring会自行处理,如果你有多个具有相同路径/名称的字段,它会自动尝试将其转换为Array或List。
答案 1 :(得分:0)
您需要将List包装在Object中。它的设计更好。您可以将此对象设为通用,并在需要时在其他控制器中多次重复使用。请注意,在调用系统中构造对象时必须遵循相同的结构。
@RequestMapping(value = "/", method = RequestMethod.POST)
public String addFruits(@RequestBody ListWrapper fruits) {
// ...
}