Каковы преимущества @MatrixVariable по сравнению с @RequestParam? - PullRequest
0 голосов
/ 26 августа 2018

Я читаю в этой статье http://www.kscodes.com/spring-mvc/spring-mvc-matrix-variable-example/, что одним из преимуществ является то, что вы можете использовать переменную типа Map для матричной переменной, и вы не можете использовать этот тип при использовании @RequestParam.Но кроме этого, есть ли другие причины, по которым я должен использовать @MatrixVariable вместо @RequestParam?

Спасибо

1 Ответ

0 голосов
/ 26 августа 2018

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