在Spring控制器中使用单一方法处理不同的requestbody参数

时间:2018-07-26 06:01:23

标签: spring-mvc

  

我有一个弹簧控制器,它具有一种方法   requestmapping / xml

 @RequestMapping(value = "/xml", method = RequestMethod.POST, headers = "content-type=text/xml", produces = MediaType.TEXT_XML_VALUE)
    public ResponseEntity<Person> getData(@RequestBody Person person, HttpServletRequest request,
            HttpServletResponse response) {

        ResponseEntity<Person> personRespone = helper.getPersonData(person, request,
                    response);

        return personRespone;
    }
  

这很完美。

     

但是我的要求是使用相同的RequestMapping,POST   RequestMethod将有不同的ContactBody的RequestBody   宾语。喜欢

@RequestMapping(value = "/xml", method = RequestMethod.POST, headers = "content-type=text/xml", produces = MediaType.TEXT_XML_VALUE)
public ResponseEntity<Contact> getData(@RequestBody Contact contact, HttpServletRequest request,
        HttpServletResponse response) {


    ResponseEntity<Person> personRespone = helper.getConatcData(contact, request,
                response);

    return personRespone;
}
  

表示除RequestBody参数对象之外的所有内容都相同   并根据RequestBody参数返回方法的类型   也会改变。

     

Person和Contact类都是jaxb生成的Pojo类。   请求将以xml的形式出现,响应也将以xml的形式出现。

     

我只需要对两个对象使用一个requestmapping。

     

如何使两种方法仅使用一种方法   对象(人,联系人)

     

基于RequestBody参数,帮助程序类调用方法   将会改变,响应也会改变。

0 个答案:

没有答案