在我阅读的有关Spring 3的Spring MVC RESTful添加的所有教程和文章中,我只看到过一种通过@PathVariable
,like 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接口,该接口根据经典查询字符串接收请求,例如: http://www.example.com/myservlet/shops?name=thebestshoparound
,而不是PathVariables
?
这似乎是一个非常简单的问题,但我无法在网上找到它。
答案 0 :(得分:47)
是的,使用注释@RequestParam
,这是一个例子:
public @ResponseBody Shop getShopInJSON(@PathVariable String name, @RequestParam(value="query", required=false) String query) {
// do stuff
}