当前位置: 首页 > 知识库问答 >
问题:

Spring 3.2中关于@MatrixVariable注解的一些信息

包承望
2023-03-14

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

我对Spring 3.2版本引入的新注释@MatrixVariable以及URI路径中Matrix变量的使用有些怀疑。

在我的家中.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矩阵变量

我明白了以下事情:

1)矩阵变量是一对夫妇2)我可以将这些变量放在任何URI路径段中

因此,我对之前的链接有一些疑问:

> < li>

当我单击previus链接时,URI叫什么?

是/Spring-mvc-展示/数据/矩阵vars/简单?!?!(带有Spring mvc 展示,这只是应用程序名称)

如果我把“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是数据/矩阵vars/简单,并且因为我的整个类都由@RequestMapping(“/data”)注释注释,并且我的控制器方法由以下方式注释:@RequestMapping(值=“{路径}/简单”,方法=RequestMethod.GET)表示以下内容?

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

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

对不对?

非常感谢

安德莉亚

共有1个答案

邓鸿雪
2023-03-14

答案:

当我点击[/data/matrixvars; foo=bar/Simple]链接时,URI调用了什么?

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

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

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

...所以这个方法也可以处理URI,如/Spring-mvc-展示/数据/某些东西/简单

    < li >正确,您的< code>foo MatrixVariable支持类似于< code >/spring-MVC-showcase/data/SOMETHING;foo=bar/simple
 类似资料:
  • 我正在学习Spring MVC Showcase项目,可从STS仪表板下载 我有以下情况,但我并不完全清楚: 我有以下表格: 与id="readForm"的表单的提交操作相关,我有以下Jquery函数,它简单地执行一个AJAX调用,将两个经过验证的文本变量隐藏在请求的主体字段中:**foo=bar和Fru=apple 我的控制器类处理此请求的方法如下: 好的,该方法将使用@ModelAttribu

  • 这是实现我的项目的CRUD操作的类的整个代码: 好的,正如您所看到的,使用@Transactional注释对一些方法进行了注释。 我正在阅读官方文档http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/transaction.html中关于该注释在方法上的使用,它看到了:使用@transac

  • 我不明白,当我为5分配内存时,它会打印出一个示例。我知道可以使用strncpy来完成,但有没有一种方法可以不使用strncpy来完成呢 它适用于strncpy,但有没有办法在没有strncpy的情况下做到这一点? 打印出一个示例 不应该打印OneE吗??有人能解释一下吗?

  • 本文向大家介绍JavaScript中关于base64的一些事,包括了JavaScript中关于base64的一些事的使用技巧和注意事项,需要的朋友参考一下 base64 其实是一种编码转换方式, 将 ASCII 字符转换成普通文本, 是网络上最常见的用于传输8Bit字节代码的编码方式之一。 base64 由字母 a-z 、 A-Z 、 0-9 以及 + 和 / , 再加上作为垫字的 = , 一共6

  • 本文向大家介绍关于SQL注入绕过的一些知识点,包括了关于SQL注入绕过的一些知识点的使用技巧和注意事项,需要的朋友参考一下 一、 绕过waf思路 从第一步起,一点一点去分析,然后绕过。 1、过滤 and,or 2、过滤 and, or, union 3、过滤 and, or, union, where 4、过滤 and, or, union, where, limit 5、过滤 and, or,

  • 我正在学习如何在Spring应用程序中使用JDBC,但我对此有些怀疑。 因此,让我解释一下我对一个实际例子的怀疑: 如果我有一个实现我的DAO接口的类,并且这个类包含以下方法,在我的数据库的学生表中插入一个新行: 好的...我认为SQL字符串Rapper呈现了我的SQL查询,必须执行这些查询才能在我的表中插入新行 我不明白这段代码到底是什么意思:值(?,?) 我认为,当我在JdbcTemplate