Spring MVC如何在我的控制器方法中获取GET HTTP请求的参数值?
在这个期间,我正在研究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请求,其中包含“bar”值的“foo”参数。
这个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)"; }
此方法pipe理具有名为“foo”参数的HTTP请求(仅GET
types)
我怎样才能把这个参数的值(“bar”),并通过参数方法把它放在我的代码中的一个variables?
如文档中所述 ,通过使用@RequestParam
注释:
public @ResponseBody String byParameter(@RequestParam("foo") String foo) { return "Mapped by path + method + presence of query parameter! (MappingController) - foo = " + foo; }
你也可以使用一个URI模板。 如果你把你的请求结构化成一个宁静的URL,Spring可以parsingurl提供的值。
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模板文档