バッキングオブジェクトなしでAjaxを使用して複数の変数をSpring MVCコントローラーに渡す方法は?

Mary-Kate Olsen
リリース: 2024-11-15 13:32:03
オリジナル
343 人が閲覧しました

How to Pass Multiple Variables to a Spring MVC Controller Using Ajax Without a Backing Object?

Ajax を使用して Spring MVC コントローラーに複数の変数を渡す

@RequestBody を使用して Spring MVC コントローラーに複数の変数を渡す場合、次のようになります。それらをバッキングオブジェクトでラップする必要はありません。ただし、より柔軟性を高めたり、JSON データの処理を簡素化できる代替アプローチがあります。

オプション 1: マップを使用する

強く要求しない場合は、型付きパラメータの場合は、Map を使用できます。オブジェクトを使用して JSON データを直接受信します。これにより、キーによって値にアクセスできるようになります。

@RequestMapping(value = "/Test", method = RequestMethod.POST)
@ResponseBody
public boolean getTest(@RequestBody Map<String, String> json) {
   //json.get("str1") == "test one"
}
ログイン後にコピー

このアプローチでは、カスタム バッキング オブジェクトは必要なく、任意のキーで JSON データを処理できます。

オプション 2: Jackson の ObjectNode

を使用して、より柔軟にバインドできます。 com.fasterxml.jackson.databind.node.ObjectNode を使用して、完全な JSON ツリーとして JSON データにアクセスします。

@RequestMapping(value = "/Test", method = RequestMethod.POST)
@ResponseBody
public boolean getTest(@RequestBody ObjectNode json) {
   //json.get("str1").asText() == "test one"
}
ログイン後にコピー

このアプローチにより、JSON データを動的に処理し、JSON パスに基づいて値を抽出できます。

その他考慮事項:

  • 厳密に型指定されたパラメーターが必要な場合は、予想される JSON 構造を表すカスタム POJO を作成し、@RequestBody を使用してそれにバインドできます。
  • 単純なケースでは、クエリ文字列で @RequestParam を使用するか、リクエスト URI で @PathVariable を使用すると、個別に渡すのに便利です。変数。

以上がバッキングオブジェクトなしでAjaxを使用して複数の変数をSpring MVCコントローラーに渡す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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