java-有关在Spring MVC中@RequestMapping中的Produces属性的一些信息

前端之家收集整理的这篇文章主要介绍了java-有关在Spring MVC中@RequestMapping中的Produces属性的一些信息 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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”

好的,此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批注内的Produces元素有关…

在这里阅读:http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html

说:String []产生映射请求的可生产媒体类型,从而缩小了主要映射.所以似乎生产只能说方法产生的媒体类型…在我的特定情况下,可以说控制器方法返回的媒体类型是文本值…

但是相反,在其他地方阅读时,我发现Produces属性排除了HTTP Request和带有指定媒体类型的Accepts标头…

那么…在@RequestMapping内到底会产生什么属性

最佳答案
“产生”条件指示该方法将返回什么.如果客户端未指定Accept标头,则不会阻止该方法返回它可以返回的值.

在下面的URL中,博客作者有一些与您的问题有关的评论.

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

猜你在找的Spring相关文章