この期間、私はSTSダッシュボードからダウンロード可能なSpringMVCShowcaseの例を調べています。
ヘッダーによる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リクエストが作成され、2番目のリンクをクリックすると、同じ「/ mapping/header」フォルダーへのHTTPリクエストが作成されます。
現在、これらのHTTPリクエストは、コントローラークラスの2つのメソッドによって管理されています。
最初のものは、次の方法で処理されます。
@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)";
}
そして2番目のものは次の方法で処理されます:
@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)";
}
両方のリンクが同じフォルダ「/mapping/ header」に向けてHTTPリクエストを生成するため、2つのリクエストが2つの異なる方法で処理される理由がわかりません。
なぜ最初のものにはヘッダーがあり、2番目のものにはヘッダーがないのですか?
私はおそらく何かが足りないのですが、このことを理解するのを手伝ってくれませんか?
どうもありがとうアンドレア