87

在此期间,我正在研究 Spring MVC 展示示例(可从 STS 仪表板下载),我对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 请求(仅类型)

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

4

2 回答 2

184

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

public @ResponseBody String byParameter(@RequestParam("foo") String foo) {
    return "Mapped by path + method + presence of query parameter! (MappingController) - foo = "
           + foo;
}
于 2012-11-18T17:40:54.253 回答
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 模板文档

于 2012-11-19T10:10:36.660 回答