今日は、STS ダッシュボードからダウンロード可能な Spring MVC ショーケースを調べています。
Spring 3.2 バージョンで導入された新しいアノテーション@MatrixVariableと、URI パスでの Matrix 変数の使用については、疑問があります。
私の home.jsp ビュー内には、次のリンクがあります。
<a id="matrixVar" class="textLink" href="<c:url value="/data/matrixvars;foo=bar/simple" />">Matrix variable</a>
ここで@MatrixVariableアノテーションに関する公式ドキュメントを読む: http://static.springsource.org/spring-framework/docs/3.2.0.M2/reference/html/mvc.html#mvc-ann-matrix-variables
私は次のことを理解しました:
1) マトリックス変数はいくつかあります 2) これらの変数は任意の URI パス セグメントに配置できます
したがって、前のリンクについていくつか疑問があります。
前のリンクをクリックしたときに呼び出される URI は何ですか?
/spring-mvc-showcase/data/matrixvars/simple ですか?!?! (アプリケーション名のみの spring-mvc-showcase を使用)
「foo」行列変数を他の位置に置いていたら、どうでもよかったのでは?
たとえば、「foo」変数を次のように配置すると、次のようになります。
"/data;foo=bar/matrixvars/simple"
またはこの方法で:
"/data/matrixvars/simple;foo=bar"
同じ意味ですか?
これは、リンクをクリックして生成された HTTP リクエストを処理するコントローラー メソッドです。
@RequestMapping(value="{path}/simple", method=RequestMethod.GET)
public @ResponseBody String withMatrixVariable(@PathVariable String path, @MatrixVariable String foo) {
return "Obtained matrix variable 'foo=" + foo + "' from path segment '" + path + "'";
}
このメソッドは、URI テンプレート パターンを使用して、URI の特定の位置にアクセスします。
したがって、URI がdata/matrixvars/simpleであり、クラス全体に@RequestMapping("/data")アノテーションが付けられ、コントローラー メソッドに@RequestMapping(value="{path}/simple", method= RequestMethod.GET)とは、次のことを意味しますか?
パス URI テンプレート変数は 2 番目の URI 位置 (現在の URI では matrixvars) に関連しているため、このメソッドは次のような URI も処理できます。
/spring-mvc-showcase/data/SOMETHING/simple
そうですか?
どうもありがとうございました
アンドレア