Подтвердить что ты не робот

Spring MVC Как принять значение параметра GET HTTP Request в моем методе контроллера?

В этот период я ​​изучаю пример витрины Spring MVC (загружаемый из STS dasboard), и у меня есть простой вопрос о примерах Request Mapping:

1) На моей странице home.jsp у меня есть эта ссылка:

        <li>
            <a id="byParameter" class="textLink" href="<c:url value="/mapping/parameter?foo=bar" />">By path, method, and presence of parameter</a>
        </li>

Как вы можете видеть по этой ссылке, я делаю HTTP-запрос GET с параметром "foo", содержащим значение: "bar".

Этот HTTP-запрос обрабатывается следующим методом класса контроллера MappingController:

@RequestMapping(value="/mapping/parameter", method=RequestMethod.GET, params="foo")
public @ResponseBody String byParameter() {
    return "Mapped by path + method + presence of query parameter! (MappingController)";
}

Этот метод управляет HTTP-запросом (только тип GET), который имеет параметр с именем "foo"

Как я могу взять значение ( "bar" ) этого параметра и поместить его в переменную внутри кода моего метода Parameter?

4b9b3361

Ответ 1

Как объяснено в документации, с помощью аннотации @RequestParam:

public @ResponseBody String byParameter(@RequestParam("foo") String foo) {
    return "Mapped by path + method + presence of query parameter! (MappingController) - foo = "
           + foo;
}

Ответ 2

Вы также можете использовать шаблон URI. Если вы структурировали свой запрос в спокойном URL Spring, можно проанализировать предоставленное значение из URL.

HTML

<li>
    <a id="byParameter" 
       class="textLink" href="<c:url value="/mapping/parameter/bar />">By path, method,and
           presence of parameter</a>
</li>

контроллер

@RequestMapping(value="/mapping/parameter/{foo}", method=RequestMethod.GET)
public @ResponseBody String byParameter(@PathVariable String foo) {
    //Perform logic with foo
    return "Mapped by path + method + presence of query parameter! (MappingController)";
}

Spring Документация по шаблонам URI