在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中文網其他相關文章!