Spring MVCでGETリクエストパラメータから複雑なオブジェクトをバインドするにはどうすればよいですか?

DDD
リリース: 2024-11-21 10:23:10
オリジナル
264 人が閲覧しました

How Can I Bind Complex Objects from GET Request Parameters in Spring MVC?

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

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