在 Spring MVC 中从 GET @RequestParam 解析复杂对象
考虑一个场景,您需要在查询的页面中实现过滤器表单一张桌子。过滤条件通过 GET 请求提交给控制器操作,通常格式为:http://foo.com/system/controller/action?page=1&prop1=x&prop2=y&prop3=z.
To处理这种情况,Spring MVC 通常要求您定义一个带有多个 @RequestParam 参数的控制器方法来单独检索每个属性:
@RequestMapping(value = "/action") public @ResponseBody List<MyObject> myAction( @RequestParam(value = "page", required = false) int page, @RequestParam(value = "prop1", required = false) String prop1, @RequestParam(value = "prop2", required = false) String prop2, @RequestParam(value = "prop3", required = false) String prop3) { ... }
假设您已经定义了具有属性 prop1、prop2 和 prop3 的 MyObject 类。为了简化参数处理,您可能希望将所有请求属性直接绑定到 MyObject 的实例。
@RequestMapping(value = "/action") public @ResponseBody List<MyObject> myAction( @RequestParam(value = "page", required = false) int page, MyObject myObject) { ... }
可以实现复杂对象的绑定吗?
是的,可以使用 Spring MVC 将请求参数绑定到复杂对象。
如何绑定到复杂对象对象
要实现此绑定,只需从对象参数中删除@RequestParam注释即可:
@RequestMapping(value = "/action") public @ResponseBody List<MyObject> myAction( @RequestParam(value = "page", required = false) int page, MyObject myObject) { ... }
通过此修改,Spring MVC将自动将请求参数值绑定到MyObject 实例的相应属性。
以上是如何在 Spring MVC 中从 GET 请求参数绑定复杂对象?的详细内容。更多信息请关注PHP中文网其他相关文章!