Spring MVC如何在我的控制器方法中获取GET HTTP请求的参数值?


87

在此期间,我正在研究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)";
}

此方法管理GET具有名为“ foo”的参数的HTTP请求(仅类型)

如何获取此参数的值(“条”)并将其放入by Parameter方法的代码内的变量中?

Answers:


184

文档所述,通过使用@RequestParam批注:

public @ResponseBody String byParameter(@RequestParam("foo") String foo) {
    return "Mapped by path + method + presence of query parameter! (MappingController) - foo = "
           + foo;
}

3
非常感谢您提供明确的答案以及对文档的引用
AndreaNobili

3
在情况下,当有10多个参数,做我们必须做的这10次或有对塔尔场景更好的办法
伯爵

2
@Count:单击我给文档的链接,然后向上滚动直到“支持的方法参数类型”段落,并阅读有关“命令或表单对象”的部分
JB Nizet 2014年

43

您也可以使用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模板文档

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.