Spring MVC的REST框架可以接受查询字符串而不是PathVariables吗?

时间:2012-09-10 21:59:14

标签: spring-mvc query-string spring-3 path-variables

在我阅读的有关Spring 3的Spring MVC RESTful添加的所有教程和文章中,我只看到过一种通过@PathVariablelike 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

这似乎是一个非常简单的问题,但我无法在网上找到它。

1 个答案:

答案 0 :(得分:47)

是的,使用注释@RequestParam,这是一个例子:

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