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



在我读过的所有关于Spring 3对Spring MVC的RESTful添加的教程和文章中,我只见过一种通过@PathVariable传递查询数据的方法:

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

其将响应于可以评估为http://www.example.com/myservlet/shops/thebestshoparound的类似http://www.example.com/myservlet/shops/{name}的东西。

我的问题是:是否可以设置一个RESTful接口,它接受基于经典查询字符串的请求,例如http://www.example.com/myservlet/shops?name=thebestshoparound,而不是PathVariables

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

是的,使用注释@RequestParam,下面是一个示例:

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

最新更新