在此期间,我正在研究可从 STS 仪表板下载的 Spring MVC Showcase 示例
我对标头的 HTTP 请求映射的功能有疑问。
在展示示例中,我有以下 2 个链接:
<li>
<a id="byHeader" href="<c:url value="/mapping/header" />">By presence of header</a>
</li>
<li>
<a id="byHeaderNegation" class="textLink" href="<c:url value="/mapping/header" />">By absence of header</a>
</li>
因此,如您所见,单击第一个链接我正在创建一个指向“/mapping/header”文件夹的 HTTP 请求,然后单击第二个链接我正在创建一个指向同一个“/mapping/header”文件夹的 HTTP 请求
现在这些 HTTP 请求由我的控制器类中的两种方法管理。
第一个通过以下方法处理:
@RequestMapping(value="/mapping/header", method=RequestMethod.GET, headers="FooHeader=foo")
public @ResponseBody String byHeader() {
System.out.println("Sono dentro byHeder()");
return "Mapped by path + method + presence of header! (MappingController)";
}
第二个是通过以下方法处理的:
@RequestMapping(value="/mapping/header", method=RequestMethod.GET, headers="!FooHeader")
public @ResponseBody String byHeaderNegation() {
System.out.println("Sono dentro byHeaderNegation");
return "Mapped by path + method + absence of header! (MappingController)";
}
我不明白为什么这两个请求是由两种不同的方法处理的,因为两个链接都会向同一个文件夹生成一个 HTTP 请求:“/mapping/header”
为什么第一个有标题而第二个没有?
我可能遗漏了一些东西,你能帮我理解这件事吗?
非常感谢安德里亚