JQuery、Spring MVC @RequestBody、および JSON を連携させる
バックグラウンド
JSON JQuery などのクライアント側アプリケーションとサーバー側の間でデータを転送するために広く使用されている軽量のデータ形式です。 Spring MVC のようなフレームワーク。 Spring MVC の @RequestBody を使用すると、JSON データを Java オブジェクトに自動的にマッピングできます。これは、JSON データをアプリケーションで処理できる Bean に逆シリアル化する場合に役立ちます。
問題
Java オブジェクトを JSON にシリアル化するようにアプリケーションが正常に構成されました。 (@ResponseBody) しかし、JSON データを Java オブジェクトに逆シリアル化して戻すことはできません(@RequestBody).
解決策
@RequestBody を正しく機能させるには、JSON メッセージ変換をサポートするように Spring MVC を構成する必要があります。これを行うには、次の依存関係を pom.xml に追加します。
<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.4.2</version> </dependency>
次に、Spring MVC 構成に MappingJacksonHttpMessageConverter を登録する必要があります。 Java では、これは @EnableWebMvc で実行できます:
@EnableWebMvc public class WebConfig {}
または XML では、これを web.xml に追加できます:
<mvc:annotation-driven />
使用例
これは、JSON を受け入れて Java にマップするリクエスト メソッドを設定する方法を示す例です。 method:
@RequestMapping(method = RequestMethod.POST, value = "math") @ResponseBody public Result math(@RequestBody final Request request) { final Result result = new Result(); result.setAddition(request.getLeft() + request.getRight()); result.setSubtraction(request.getLeft() - request.getRight()); result.setMultiplication(request.getLeft() * request.getRight()); return result; }
この例では、left と right の 2 つのプロパティを含む Request タイプを予期する数学エンドポイントがあります。エンドポイントは、左右のプロパティの加算、減算、乗算の結果を含む Result タイプを返します。
テスト
JSON データを含む POST リクエストを数学エンドポイントに送信することでアプリケーションを実行します。応答は、Result タイプの JSON 表現である必要があります。
以上がシームレスなデータ転送のために jQuery、Spring MVC の @RequestBody、および JSON を統合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。