【SpringMVC】常用注解:@MatrixVariable

1.作用

接收矩阵变量传送的值

或许有人听都没听过矩阵变量是什么,下面来介绍一下

矩阵变量是一种在URL路径中传递多个键值对参数的方式,它是在 Servlet 规范之外的一种扩展机制,可用于更灵活地传递参数。

例如:/cars;color=red;year=2020,其中 color=redyear=2020 就是矩阵变量。

2.属性

namevalue:指定矩阵变量的名称,用于从 URL 中提取对应的值。如果不指定,默认使用方法参数名作为矩阵变量名。

pathVar:指定矩阵变量所在的路径变量名称。如果 URL 中有多个路径变量,使用该参数可以明确指定从哪个路径变量后面的矩阵变量中提取值。

required:表示该矩阵变量是否为必需的,默认为 true。如果设置为 true,且请求中未提供该矩阵变量,则会抛出异常。

defaultValue:当矩阵变量未提供时,使用该默认值。

3.示例

在我们使用矩阵变量之前,要先开启SpringMVC对矩阵变量的支持

复制代码
<mvc:annotation-driven enable-matrix-variables="true"
 </mvc:annotation-driven>

然后再前台定义一个携带矩阵变量的url

复制代码
 <a
href="${pageContext.request.contextPath}/demo1/testMatrixVariable
 s/1;name=james;ages=18,19,20">测试矩阵变量</a>

最后定义控制器方法,接收矩阵变量的值

复制代码
@RequestMapping("testMatrixVariables/{id}")
 public String testMatrixVariables(@PathVariable("id") int id,
 @MatrixVariable("name") String 
name,
 @MatrixVariable("ages") 
List<Integer> ages){
 System.out.println(id);
 System.out.println(name);
 System.out.println(ages);
 return "success";
 }

输出

复制代码
1
james
[18,19,20]
相关推荐
在努力的韩小豪9 天前
SpringMVC和SpringBoot是否线程安全?
spring boot·后端·springmvc·线程安全·bean的作用域
依旧很淡定18 天前
05-SpringBoot3入门-整合SpringMVC(配置静态资源、拦截器)
springmvc·拦截器·静态资源
就改了25 天前
SpringMVC 跨域问题两种常用解决方案
java·springmvc
一弓虽1 个月前
springmvc 框架学习
java·学习·spring·ssm·springmvc
想要打 Acm 的小周同学呀1 个月前
SpringMVC执行的流程
springmvc·springmvc执行的流程
工一木子1 个月前
【SpringMVC】SpringMVC的启动过程与原理分析:从源码到实战
mvc·springmvc·原理分析
岁岁岁平安1 个月前
SpringMVC学习(controller层加载控制与(业务、功能)bean加载控制、Web容器初始化配置类)(3)
java·学习·spring·mybatis·springmvc
岁岁岁平安1 个月前
SpringMVC学习(初识与复习Web程序的工作流程)(1)
java·spring·servlet·mybatis·springmvc·web
岁岁岁平安1 个月前
SpringMVC学习(入门案例思路及实现、Web容器初始化与SpringMVC配置类)(2)
java·spring·mvc·springmvc·idea