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

And*_*ili 86 java parameters spring http request

在这期间我正在研究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>
Run Code Online (Sandbox Code Playgroud)

正如您在此链接中所看到的,我正在执行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)";
}
Run Code Online (Sandbox Code Playgroud)

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

如何获取此参数的值("bar")并将其放入我的参数方法代码中的变量中?

JB *_*zet 183

文档所述,使用@RequestParam注释:

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

  • 非常感谢您的明确答复和文档参考 (3认同)
  • 如果有10个参数,我们是否必须这样做10次,或者有更好的方法来解决这个问题 (3认同)
  • @Count:点击我给文档的链接,然后向上滚动一点直到段落"支持的方法参数类型",并阅读关于"命令或表单对象"的部分 (2认同)

Kev*_*sox 42

您还可以使用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>
Run Code Online (Sandbox Code Playgroud)

调节器

@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)";
}
Run Code Online (Sandbox Code Playgroud)

Spring URI模板文档