在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元素有关…
说:String []产生映射请求的可生产媒体类型,从而缩小了主要映射.所以似乎生产只能说方法产生的媒体类型…在我的特定情况下,可以说控制器方法返回的媒体类型是文本值…
但是相反,在其他地方阅读时,我发现Produces属性排除了HTTP Request和带有指定媒体类型的Accepts标头…
那么…在@RequestMapping内到底会产生什么属性?
最佳答案
“产生”条件指示该方法将返回什么.如果客户端未指定Accept标头,则不会阻止该方法返回它可以返回的值.
http://spring.io/blog/2011/06/13/spring-3-1-m2-spring-mvc-enhancements