在 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 注释中的生产元素有关......
说:String[] 产生映射请求的可生产媒体类型,缩小主映射。所以它似乎只说该方法产生的媒体类型......在我的具体情况下,说控制器方法返回的媒体类型是文本值......
但是在其他地方阅读时,我发现生产属性不包括 HTTP 请求,其 Accepts 标头与指定的媒体类型不兼容...
那么......究竟是什么在@RequestMapping 中产生了属性?