ホームページ  >  記事  >  Java  >  AjaxとSpring MVCを使用して@RequestBodyで複数の変数を渡す方法?

AjaxとSpring MVCを使用して@RequestBodyで複数の変数を渡す方法?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-10 01:40:02241ブラウズ

How to Pass Multiple Variables in @RequestBody Using Ajax and Spring MVC?

Ajax と Spring MVC を使用して @RequestBody で複数の変数を渡す

質問:

複数の変数を渡すにはどうすればよいですか? Ajax を使用して Spring MVC コントローラーに HTTP リクエスト本文を送信しますか?具体的には、@RequestBody を個別のパラメーターで使用できますか? それともラッピング オブジェクトが必要ですか?

回答:

@RequestBody は通常、単一のオブジェクトにマップされますが、次のいずれかの方法を使用して目標を達成できます:

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

カスタム バッキング オブジェクトの作成を避けるために、@RequestBody を Map にマップできます:

@RequestMapping(value = "/Test", method = RequestMethod.POST)
@ResponseBody
public boolean getTest(@RequestBody Map<String, String> json) {
   //json.get("str1") == "test one"
}

これにより、 JSON をマップのプロパティとして使用します。

オプション 2: を使用するObjectNode

完全な JSON ツリーを操作したい場合は、@RequestBody を Jackson の ObjectNode にバインドできます。

public boolean getTest(@RequestBody ObjectNode json) {
   //json.get("str1").asText() == "test one"
}

これにより、JSON 構造とそのさまざまな要素に直接アクセスできるようになります。

比較:

どちらのオプションも @RequestBody で複数の変数を処理するための異なるアプローチを提供します:

  • マップを使用すると、次のノードへのアクセスが簡素化されます。個々の値を抽出するには、より手動のアプローチが必要です。
  • ObjectNode はより高い柔軟性を提供しますが、特定の値にアクセスしたり、JSON ツリーを反復処理したりするには追加の処理が必要になる場合があります。

最終的に、最良の選択は、アプリケーションの特定のニーズと必要な柔軟性のレベルによって異なります。

以上がAjaxとSpring MVCを使用して@RequestBodyで複数の変数を渡す方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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