В отличие от @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) {
// ...
}