Spring MVCで、@ResponseBodyを使用する際にmime typeヘッダを設定する方法
質問
私はJSON文字列を返すSpring MVCコントローラを持っており、私はmimetypeをapplication/jsonに設定したいと思います。どうすればよいでしょうか。
@RequestMapping(method=RequestMethod.GET, value="foo/bar")
@ResponseBody
public String fooBar(){
return myService.getJson();
}
ビジネスオブジェクトはすでにJSON文字列として利用可能なので
MappingJacksonJsonView
は私にとっての解決策ではありません。
@ResponseBody
は完璧ですが、どのようにmimetypeを設定することができますか?
どのように解決するのですか?
私は、JSON文字列ではなくドメインオブジェクトを返すようにサービスをリファクタリングし、Springにシリアライズを処理させることを考えます(
MappingJacksonHttpMessageConverter
を通して)シリアライズをSpringに任せることを考えます。Spring 3.1時点では、実装はかなりすっきりしているように見えます。
@RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE,
method = RequestMethod.GET
value = "/foo/bar")
@ResponseBody
public Bar fooBar(){
return myService.getBar();
}
コメント
まず
<mvc:annotation-driven />
または
@EnableWebMvc
は
が追加され
をアプリケーションの設定に追加してください。
次に
が生成する
属性は
@RequestMapping
アノテーションは、レスポンスのコンテンツタイプを指定するために使用されます。その結果、この属性は
メディアタイプ.APPLICATION_JSON_VALUE
(または
"application/json"
).
最後に、JavaとJSON間のシリアライズとデシリアライズがSpringによって自動的に処理されるように、Jacksonを追加する必要があります(Jacksonの依存性はSpringによって検出され
MappingJacksonHttpMessageConverter
はフードの下にあることになります)。
関連
-
アクセス制限です。タイプ 'JPEGCodec' は API ではない ☞My Blog Github ☜ ホームページを見る
-
executeQuery()でデータ操作文が発行できない。解決方法
-
StringBuilderが投げるArrayIndexOutOfBoundsExceptionの探索
-
eclipse にリソースリーク:'in' が閉じない
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] ASP.NETでJSONを単純なDictionary<string,string>にデシリアライズするにはどうすればよいですか?
-
[解決済み] Spring MVCの@ResponseBodyメソッドがStringを返すときにHTTP 400エラーで応答するにはどうすればよいですか?
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?
-
[解決済み】Spring経由のRESTful認証
-
[解決済み] Spring MVC - Restコントローラで単純な文字列をJSONとして返す方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
Javaでよくある構文エラー
-
Javaクラスが "Error occurred during initialization of boot layer "というエラーで実行される。
-
無効なメソッド宣言
-
CertificateException: XXXに一致するサブジェクトの代替DNS名が見つかりません 解決策
-
API の戻り値を処理するために ResponseEntity を使用する
-
Java JDKのダイナミックプロキシ(AOP)の使用と実装の原理分析
-
Java の double データ型における 0.0 と -0.0 の問題
-
linux ant Resolve error: main class not found or couldn't be loaded org.apache.tools.ant.launcher.
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ