MatrixVariable,翻译过来就是"矩阵变量":
- PathVariable主要用于获取URI中的单一变量,MatrixVariable可以获取复杂变量;
- 规则:
(1)URI中的参数与值使用key-value形式;
(2)多个参数间使用分号隔开;
(3)若一个参数有多个值,值与值之间使用逗号隔开
举例:
首先,因为Springboot默认不使用MatrixVariable绑定参数,我们需要添加配置类:
@Configuration
public class MyWebConfig implements WebMvcConfigurer {
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
UrlPathHelper urlPathHelper=new UrlPathHelper();
urlPathHelper.setRemoveSemicolonContent(false);
configurer.setUrlPathHelper(urlPathHelper);
}
}
之后,编写控制器中的方法:
@RequestMapping("/car/{id}")
public String car(@PathVariable("id") Integer id,
@MatrixVariable String color,
@MatrixVariable List<String> years) {
System.out.println(id);
System.out.println(color);
System.out.println(years.size());
return "test";
}
最后,发送请求:
http://localhost:8080/car/100;color=red;years=2012,2013,2014
得到的结果为:
100
red
3