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 中国語 Web サイトの他の関連記事を参照してください。