在此期间我正在研究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)";
}
此方法管理具有名为“foo”的参数的HTTP请求(仅GET
类型)
如何获取此参数的值(“bar”)并将其放入我的参数方法代码中的变量中?
答案 0 :(得分:182)
正如the documentation中所述,使用@RequestParam
注释:
public @ResponseBody String byParameter(@RequestParam("foo") String foo) {
return "Mapped by path + method + presence of query parameter! (MappingController) - foo = "
+ foo;
}
答案 1 :(得分:41)
您还可以使用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)";
}