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

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

DDD
DDDオリジナル
2024-11-21 10:23:10266ブラウズ

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。