Spring MVC jak pobrać wartość parametru żądania GET HTTP w metodzie kontrolera?
W tym okresie studiuję przykład Spring MVC showcase (do pobrania z STS dasboard) i mam kilka prostych pytań dotyczących przykładów Request Mapping
:
1) na mojej home.jsp
stronie mam taki link:
<li>
<a id="byParameter" class="textLink" href="<c:url value="/mapping/parameter?foo=bar" />">By path, method, and presence of parameter</a>
</li>
Jak widać po tym linku wykonuję żądanie HTTP GET posiadające parametr " foo "zawierający wartość:"bar".
To żądanie HTTP jest obsługiwane przez następującą metodę klasy kontrolera MappingController:
@RequestMapping(value="/mapping/parameter", method=RequestMethod.GET, params="foo")
public @ResponseBody String byParameter() {
return "Mapped by path + method + presence of query parameter! (MappingController)";
}
Ta metoda zarządza żądaniem HTTP (tylko Typ GET
), który ma parametr o nazwie "foo"
Jak mogę pobrać wartość ("bar") tego parametru i umieścić go w zmiennej wewnątrz kodu metody my by Parameter?
2 answers
Jak wyjaśniono w dokumentacji , używając adnotacji @RequestParam
:
public @ResponseBody String byParameter(@RequestParam("foo") String foo) {
return "Mapped by path + method + presence of query parameter! (MappingController) - foo = "
+ foo;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-18 17:40:54
Możesz również użyć szablonu URI. Jeśli Ustawiłeś żądanie w restful URL, sprężyna może przetworzyć podaną wartość z adresu url.
HTML
<li>
<a id="byParameter"
class="textLink" href="<c:url value="/mapping/parameter/bar />">By path, method,and
presence of parameter</a>
</li>
Controller
@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)";
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-19 10:10:36