上一篇分析了Spring中是如何通过使用@ResponseBody注解,实现自动转换Java对象为XML,JSON数据到Reponse中。
接下来看看如果request中包含了XML或者JSON数据,反过来,如何来通过@RequestBody注解来自动转换为Java对象。
配合@RequestBody注解,以及HTTP Request Header中的Content-Type属性,HTTP Request Body中包含的XML或者JSON数据可以自动被转换成对应的Java对象。
1).首先在controller中添加handlermapping
/**
* 根据request header中的Content-Type自动转换XML/JSON->UserDTOX对象
* 根据request header中的Accept自动选择返回XML or JSON
*/
@ResponseBody
@RequestMapping(value="/createUser", method = RequestMethod.POST)
public UserDTOX createUser(@RequestBody UserDTOX userDTOX) {
logger.debug("creating a UserDTO:[{}]", userDTOX);
return new UserDTOX("Hi " + userDTOX.getName(), userDTOX.getAge() + 1);
}
2).运行以下两个测试函数
@Test
p