在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标头,则不会阻止该方法返回它可以返回的值.
http://spring.io/blog/2011/06/13/spring-3-1-m2-spring-mvc-enhancements
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。