Spring MVCで複雑なオブジェクトをGET @RequestParamとしてバインドするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-20 15:48:13
オリジナル
744 人が閲覧しました

How Can I Bind a Complex Object as a GET @RequestParam in Spring MVC?

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート