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请求(仅GETtypes)

我怎样才能把这个参数的值(“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模板文档