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>

このリンクからわかるように、値「bar」を含む「foo」パラメーターを持つHTTPGETリクエストを実行しています。

この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テンプレートを使用することもできます。リクエストをRESTfulURLに構造化した場合、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)";
}

SpringURIテンプレートのドキュメント

于 2012-11-19T10:10:36.660 に答える