我有一个弹簧控制器,它具有一种方法 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参数,帮助程序类调用方法 将会改变,响应也会改变。