【问题标题】:Spring MVC How take the parameter value of a GET HTTP Request in my controller method?Spring MVC 如何在我的控制器方法中获取 GET HTTP 请求的参数值?
【发布时间】:2012-11-06 17:14:26
【问题描述】:

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

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

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

【问题讨论】:

    标签: java spring http parameters request


    【解决方案1】:

    the documentation 中所述,通过使用@RequestParam 注释:

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

    【讨论】:

    • 如果有 10 个参数,我们是否必须这样做 10 次,或者对于这个场景有更好的方法
    • @Count:点击我给文档的链接,然后向上滚动一点直到“支持的方法参数类型”段落,并阅读有关“命令或表单对象”的部分
    【解决方案2】:

    您也可以使用 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 Template Documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-02
      • 2011-11-10
      • 2013-02-16
      • 2010-10-21
      • 1970-01-01
      • 2014-02-02
      • 1970-01-01
      相关资源
      最近更新 更多