我在本文http://www.kscodes.com/spring-mvc/spring-mvc-matrix-variable-example/中读到的一个好处是,可以将变量类型Map
用于矩阵变量,而在使用@RequestParam
时不能使用此类型。除此之外,还有其他原因为什么我应该使用@MatrixVariable
而不是@RequestParam
?
谢谢
答案 0 :(得分:2)
与@RequestParam
不同,@MatrixVariable
由分号;
分隔,多个值由逗号,
分隔。阅读其文档:
注释,指示方法参数应绑定到路径段内的名称/值对。支持带注释的RequestMapping处理程序方法。
有很多示例和用法变体。这里有一些例子:
URL:localhost:8080/person/Tom;age=25;height=175
和控制器:
@GetMapping("/person/{name}")
@ResponseBody
public String person(
@PathVariable("name") String name,
@MatrixVariable("age") int age,
@MatrixVariable("height") int height) {
// ...
}
它甚至可以映射到String[]
。
URL:localhost:8080/person/Tom;languages=JAVA,JAVASCRIPT,CPP,C
和控制器
public String person(
@PathVariable("name") String name,
@MatrixVariable("languages") String[] languages) {
// ...
}