Spring MVC:將復雜對象綁定為GET @RequestParam
問題:
考慮一個您有一個頁面列出表中的物件的場景。您需要新增一個表單來使用發送到類似於以下URL 的Ajax GET 請求來過濾表:
http://foo.com/system/controller/action?page=1&prop1=x&prop2=y&prop3=z
您希望綁定整個控制器方法,而不是在控制器方法上使用大量@RequestParam參數直接過濾物件。
範例:
假設您有一個 MyObject類別定義為:
public class MyObject { private String prop1; private String prop2; private String prop3; // Getters and setters // ... }
您理想的控制器方法如下所示:
@RequestMapping(value = "/action") public @ResponseBody List<MyObject> myAction( @RequestParam(value = "page", required = false) int page, MyObject myObject)
解決方案:
Spring提供了將複雜物件綁定為@RequestParam參數的功能。要實現此目的,只需從方法參數中刪除 @RequestParam 註解即可:
@RequestMapping(value = "/action") public @ResponseBody List<MyObject> myAction( @RequestParam(value = "page", required = false) int page, MyObject myObject)
Spring 會自動將請求參數綁定到您的 MyObject 實例。
以上是如何在 Spring MVC 中將複雜物件綁定為 GET @RequestParam?的詳細內容。更多資訊請關注PHP中文網其他相關文章!