如何在Spring中使用一个请求映射绑定不同的POST对象?

时间:2015-06-04 20:00:38

标签: spring spring-mvc spring-restcontroller

以下是我的网址的样子

http://localhost/controller/check

这是请求图表

 @RequestMapping(method = RequestMethod.POST)
 public Data check(@RequestBody final Check checkRequest, final HttpServletResponse servletResponse) {
    // service layer
 }

现在我希望Check对象同时处理以下POJOS。

public class Check {
    String name;
    String email;
}

public class Check {
    int age;
    Location location;
}

请求映射应处理以下POST正文。

{"age" : 23, "location" :{ "region": XXX, "country":"xxx", "zipcode":xxx}

{"name": "yyyy", "email":"hello@bar.com"}

这里推荐的方法是什么?

2 个答案:

答案 0 :(得分:0)

如果有意义只需将属性合并到一个类中。 json映射将与缺少的atributes一起使用,将映射为null。

如果您仍然需要2个不同的模型,请创建一个名为CheckRequest的包装器,它包含2个memeber变量checkName& checkLocation并发布相应的json

答案 1 :(得分:0)

我将扩展Check类,并将新扩展的类放在请求体中。