質問:
複数の変数を渡すにはどうすればよいですか? 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 で複数の変数を処理するための異なるアプローチを提供します:
最終的に、最良の選択は、アプリケーションの特定のニーズと必要な柔軟性のレベルによって異なります。
以上がAjaxとSpring MVCを使用して@RequestBodyで複数の変数を渡す方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。