SpringMVC RequestMapping用于GET参数


问题内容

如何使RequestMapping处理url中的GET参数?例如我有这个网址

http://localhost:8080/userGrid?_search=false&nd=1351972571018&rows=10&page=1&sidx=id&sord=desc

(来自jqGrid)

我的RequestMapping应该是什么样的?我想使用HttpReqest获取参数

试过这个:

@RequestMapping("/userGrid")
    public @ResponseBody GridModel getUsersForGrid(HttpServletRequest request)

但这不起作用。


问题答案:

在方法参数中使用@RequestParam,以便Spring可以绑定它们,还可以使用@
RequestMapping.params
数组来缩小spring将使用的方法的范围。样例代码:

@RequestMapping("/userGrid", 
params = {"_search", "nd", "rows", "page", "sidx", "sort"})
public @ResponseBody GridModel getUsersForGrid(
@RequestParam(value = "_search") String search, 
@RequestParam(value = "nd") int nd, 
@RequestParam(value = "rows") int rows, 
@RequestParam(value = "page") int page, 
@RequestParam(value = "sidx") int sidx, 
@RequestParam(value = "sort") Sort sort) {
// Stuff here
}

这样,只有在存在所有参数的情况下,Spring才会执行此方法,从而使您免于空检查和相关的工作。