And*_*ili 5 java spring annotations spring-mvc spring-annotations
今天我正在研究从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>
Run Code Online (Sandbox Code Playgroud)
在这里阅读有关@MatrixVariable注释的官方文档:http://static.springsource.org/spring-framework/docs/3.2.0.M2/reference/html/mvc.html#mvc-ann-matrix-variables
我了解以下内容:
1)矩阵变量是一对2)我可以将这些变量放在任何URI路径段中
所以我对之前的链接有些怀疑:
点击previus链接时调用的URI是什么?
是/ spring-mvc-showcase/data/matrixvars/simple?!?!(使用spring-mvc-showcase只是应用程序名称)
如果我把"foo"矩阵变量放在其他位置,那会无动于衷吗?
例如,如果我以这种方式放置"foo"变量:
"/数据;富=酒吧/ matrixvars /简单的"
或以这种方式:
"/数据/ matrixvars /简单;富=栏"
它有同样的含义吗?
好的,现在这是通过单击链接处理生成的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 + "'";
}
Run Code Online (Sandbox Code Playgroud)
此方法使用URI模板模式加入URI的特定位置.
因此,如果我的URI是data/matrixvars/simple,并且因为我的整个类都被@RequestMapping("/ data")注释注释,我的控制器方法被注释为:@RequestMapping(value ="{path}/simple",method = RequestMethod.GET)这意味着什么?
路径URI模板变量与第二个URI位置(在当前URI中是矩阵变量)相关,因此该方法也可以处理如下URI:
/spring-mvc-showcase/data/SOMETHING/simple
Run Code Online (Sandbox Code Playgroud)
这样对吗?
非常感谢你
安德里亚
答案:
单击 [ /data/matrixvars;foo=bar/simple] 链接时调用的 URI 是什么?
/data/matrixvars/simple;实际的矩阵变量从 URI 中“消失”,因为矩阵变量被视为 URI 的可选组件。如果我将“foo”矩阵变量放在其他位置,那会无关紧要吗?
...所以这个方法也可以处理 URI,比如 /spring-mvc-showcase/data/SOMETHING/simple
fooMatrixVariable 定义为支持类似的内容/spring-mvc-showcase/data/SOMETHING;foo=bar/simple| 归档时间: |
|
| 查看次数: |
4376 次 |
| 最近记录: |