如何postForObject对象列表?

时间:2017-06-17 17:31:24

标签: spring rest spring-mvc jpa resttemplate

我有一个只发布一个对象的工作示例,但我不知道如何发布对象列表。以下是我试图这样做的方法:

客户端

protected List<EventStudent> doInBackground(Object... params) {
            RestTemplate template = new RestTemplate();
            template.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
            EventStudent[] array = new EventStudent[event.size()];
            event.toArray(array);
            template.postForObject(URL.GET_EVENT_INFO ,array, EventStudent[].class);
            return event;
        }

这就是我试图让它们在服务器上的方式:

服务器

 @RequestMapping(value = "/eventstudent", method = RequestMethod.POST)
@ResponseBody
public List<EventStudent> saveRemider(@RequestBody List<EventStudent>event) {
    return service.save(event);
}

但它不起作用

1 个答案:

答案 0 :(得分:1)

问题是List的通用和类型擦除,这相当于List&lt; ? &GT;在控制器方法中。

创建一个自定义列表类,只是为了将List包装到可以由spring mvc

处理的List中
public class EventStudentList extends ArrayList<EventStudent> {
}

并将其用作

 @RequestMapping(value = "/eventstudent", method = RequestMethod.POST)
@ResponseBody
public List<EventStudent> saveRemider(@RequestBody EventStudentList  event) {
    return service.save(event);
}