spring MVC请求参数自动映射复杂对象

时间:2017-03-21 14:24:28

标签: java spring spring-mvc java-ee

我在这里看到了类似的答案:

Spring MVC: Complex object as GET @RequestParam

Spring map GET request parameters to POJO automatically

我真的找不到这个文档,因为这个自动映射甚至没有通过任何注释完成。 (事实上​​它甚至不需要@RequestParam

1)到目前为止我只看到简单的映射,该对象包含所有原始数据,如果我的请求是一个包含多个属性级别(一个对象包含其他对象)的复杂JSON对象怎么样?自动映射是否仍然有效?

2)到目前为止我只看到Spring控制器可以接受一个自动映射对象,我可以让它自动映射多个对象吗?例如:

public @ResponseBody List<MyObject> myAction(MyObject myObject,
MyObject2 myObject2) { ... }

任何人都知道文档在哪里描述映射在幕后工作的方式?基于我的第二个问题,如果Spring允许这样做,如果我在MyObjectMyObject2中有相同的属性名称,该映射将如何执行该怎么办?

1 个答案:

答案 0 :(得分:1)

如果您这样做:

public @ResponseBody List<MyObject> myAction(@RequestBody MyObject myObject) { ... }

当然,您的http请求中只能有一个正文。

只要你的类路径中有杰克逊(弹簧启动会自动添加),你的对象就会被正确编组。

如果您身体中的JSON不正确,您将收到400(无效请求)。