gpt4 book ai didi

java - Spring 3.2 中@MatrixVariable 注解的一些信息

转载 作者:搜寻专家 更新时间:2023-11-01 00:51:29 25 4
gpt4 key购买 nike

今天我正在研究可从 STS 仪表板下载的 Spring MVC 展示

我对Spring 3.2版本引入的新注解@MatrixVariable和URI路径中Matrix变量的使用有些疑惑。

在我的 home.jsp View 中,我有以下链接:

<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 路径段中

所以我对之前的链接有些疑惑:

  1. 当我点击前面的链接时调用的 URI 是什么?

    是/spring-mvc-showcase/data/matrixvars/simple 吗?!?! (只有应用程序名称的 spring-mvc-showcase)

  2. 如果我将“foo”矩阵变量放在其他位置,它会无动于衷吗?

例如,如果我以这种方式放置“foo”变量:

“/data;foo=bar/matrixvars/simple”

或者这样:

"/data/matrixvars/simple;foo=bar"

是一样的意思吗?

好的,现在这是处理通过单击链接生成的 HTTP 请求的 Controller 方法:

@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") 注释注释并且我的 Controller 方法被注释by: @RequestMapping(value="{path}/simple", method=RequestMethod.GET) 是指下面的东西吗?

路径 URI 模板变量与第二个 URI 位置相关(在当前 URI 中是 matrixvars),因此此方法也可以处理 URI,如:

/spring-mvc-showcase/data/SOMETHING/simple 

是吗?

非常感谢

安德里亚

最佳答案

答案:

当我点击 [ /data/matrixvars;foo=bar/simple ] 链接时调用的 URI 是什么?

  • 从浏览器的角度来看,URI 与给定的完全一样。
  • 在Spring MVC中,它是/data/matrixvars/simple;实际矩阵变量从 URI 中“消失”,因为矩阵变量被视为 URI 的可选组件。

如果我将“foo”矩阵变量放在其他位置,它会无动于衷吗?

  • 。矩阵变量与其在路径中的位置相关联。如果将它们移动到不同的路径位置,它们的含义就会改变。

...所以这个方法也可以像处理 URI 一样 /spring-mvc-showcase/data/SOMETHING/simple

  • 正确,您定义的 foo MatrixVariable 支持 /spring-mvc-showcase/data/SOMETHING;foo=bar/simple

关于java - Spring 3.2 中@MatrixVariable 注解的一些信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13869288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com