web-dev-qa-db-ja.com

Spring MVCのRESTフレームワークはPathVariablesではなくクエリ文字列を受け入れることができますか?

Spring MVCへのSpring 3のRESTfulな追加について読んだすべてのチュートリアルと記事で、@PathVariableを介してクエリデータを渡す方法を1つしか見たことがありません。 so

@RequestMapping(value="/shops/{name}", method=RequestMethod.GET)
public @ResponseBody Shop getShopInJSON(@PathVariable String name) {
    ...
}

http://www.example.com/myservlet/shops/{name}のようなものに応答し、http://www.example.com/myservlet/shops/thebestshoparoundと評価されます。

私の質問はこれです:古典的なクエリ文字列に基づいてリクエストを受け取るRESTfulインターフェイスを設定することは可能ですか? PathVariablesの代わりにhttp://www.example.com/myservlet/shops?name=thebestshoparound

これは本当に簡単な質問のように思えますが、オンラインではそれを見つけることができません。

28
Ken Bellows

はい、注釈を使用します @RequestParam 、例は次のとおりです。

public @ResponseBody Shop getShopInJSON(@PathVariable String name, @RequestParam(value="query", required=false) String query) {
    // do stuff
}
48
nickdos