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?
Ответы
Ответ 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