3

Spring MVC Showcase の例 (STS ダッシュボードからダウンロード可能) では、次の状況があります。

私の見解では、次のリンクがあります。

        <li>
            <a id="responseCharsetProduce" class="textLink" href="<c:url value="/response/charset/produce" />">@ResponseBody (UTF-8 charset produced)</a>
        </li>

このリンクは、URL への HTTP リクエストを生成します: "/response/charset/produce"

OK、この HTTP リクエストはコントローラー クラスの次のメソッドによって処理されます (私のコントローラー クラス自体に @RequestMapping(value="/response", method=RequestMethod.GET という注釈が付けられているため、このメソッドがこのリクエストを処理しました)。

@RequestMapping(value="/charset/produce", produces="text/plain;charset=UTF-8")
public @ResponseBody String responseProducesConditionCharset() {
    return "\u3053\u3093\u306b\u3061\u306f\u4e16\u754c\uff01 (\"Hello world!\" in Japanese)";
}

私の疑問は、 @RequestMapping アノテーション内のプロデュース要素に関連しています...

ここを読む: http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html

String[]は、マッピングされたリクエストの生成可能なメディア タイプを生成し、プライマリ マッピングを絞り込みます。したがって、メソッドによって生成されるメディアタイプのみを生成するようです...私の特定のケースでは、コントローラーメソッドによって返されるメディアタイプはテキスト値であると言います...

しかし、代わりに他の場所を読むと、プロデュース属性が、指定されたメディアタイプと互換性のない Accepts ヘッダーを持つ HTTP リクエストを除外していることがわかりました...

では、@RequestMapping 内で正確に属性を生成するのは何ですか?

4

1 に答える 1

3

「生成」条件は、メソッドが返すものを示します。クライアントが Accept ヘッダーを指定しなかった場合、メソッドが返すことができるものを返すことを妨げるものは何もありません。

以下の URL に、あなたの質問に関連するブログ作成者のコメントがいくつかあります。

http://spring.io/blog/2011/06/13/spring-3-1-m2-spring-mvc-enhancements

于 2013-01-10T20:30:56.430 に答える