我正在使用 Spring 3.0 创建一个 RESTful 网站。我在用ContentNegotiatingViewResolver
以及 HTTP 消息转换器(例如MappingJacksonHttpMessageConverter
对于 JSON,MarshallingHttpMessageConverter
用于 XML 等)。如果我在 url 最后使用 .xml 后缀,并且在 URL 中使用带有 .json 后缀的 JSON,我就能够成功获取 XML 内容。
从控制器获取 XML/JSON 内容对我来说不会产生任何问题。但,如何在同一控制器方法中使用请求正文发布 XML/JSON?
For e.g.
@RequestMapping(method=RequestMethod.POST, value="/addEmployee")
public ModelAndView addEmployee(@RequestBody Employee e) {
employeeDao.add(e);
return new ModelAndView(XML_VIEW_NAME, "object", e);
}
您应该考虑不使用 View 来返回 JSON(或 XML),而是使用 @ResponseBody 注释。如果员工是应该返回的,如果您使用这样的方法定义和实现(注意,未测试),Spring 和 MappingJacksonHttpMessageConverter 会自动将您的 Employee 对象转换为 JSON:
@RequestMapping(method=RequestMethod.POST, value="/addEmployee")
@ResponseBody
public Employee addEmployee(@RequestBody Employee e) {
Employee created = employeeDao.add(e);
return created;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)