我想使用域对象作为@RequestBody。我的域对象是不可变的对象,所以它们没有任何setter方法。它的应用程序/ json请求,我正在使用杰克逊消息转换器。Spring 3 MVC - 使用域对象作为@RequestBody
@RequestMapping(value="/user", method=RequestMethod.POST)
@ResponseStatus(HttpStatus.NO_CONTENT)
public @ResponseBody void createUser(@RequestBody User user) {
..........
}
因为我没有我的用户对象的内部setter方法,当我做一个POST请求到“/用户”,我从MappingJacksonHttpMessageConverter得到UnrecognizedPropertyException。春天有没有办法可以使用用户对象的静态工厂方法(或构造函数)而不是setter来分配数据。
另外:作为版本1.2,杰克逊允许使用的“创建者”的方法(构造器和静态工厂方法),这意味着它可以省略设置器方法,如果数据是通过构造要传递(HTTP: //wiki.fasterxml.com/JacksonFAQ#Data_Binding.2C_general)。我想知道MappingJacksonHttpMessageConverter如何实现它。 – Chandra