3

コントローラの同じメソッドをJSPと他のMIMEタイプ(XMLやJSONなど)の両方に使用できますか?

SpringMVCでビューを解決する次の方法を知っています。

  1. ビュー名でaを返し、またはStringに属性を追加しますModelModelMap
  2. ModelAndViewビュー名とモデルを含むを返します
  3. 注釈Object付きで返す@ResponseBody

JSPを扱う場合は1または2を使用し、JSONまたはXMLを返す場合は3を使用します。

@RequestMapping(headers="accept=application/xml")2つのメソッドとor@producesアノテーションを使用して、それらが処理するMIMEタイプを定義できることは知っていますが、これを1つのメソッドで行うことは可能ですか?

コントローラのロジックは非常に単純で、同じ正確なモデルを返す2つの異なるメソッドをマップするのは不必要な重複のように見えますか、それとも単にそれが行われる方法ですか?

4

2 に答える 2

3

はい、これはSpring MVC 3.xでは簡単です...

基本的には、通常の JSP ページ ビュー用のコントローラー メソッドを記述してからContentNegotiatingViewResolver、Dispatcher サーブレット構成で Bean を構成します。これは、要求された MIME タイプ (またはファイル拡張子) を調べて、適切な出力タイプを返します。

こちらの手順に従ってください: Spring 3 MVC ContentNegotiatingViewResolver の例

于 2012-10-19T08:49:36.427 に答える