28

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

@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

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

4

1 回答 1

48

Yes, use the annotation @RequestParam, here is an example:

public @ResponseBody Shop getShopInJSON(@PathVariable String name, @RequestParam(value="query", required=false) String query) {
    // do stuff
}
于 2012-09-10T22:25:44.670 回答