SpringMVC RequestMapping for GET 参数

2022-08-31 14:05:57

如何使请求映射来处理URL中的GET参数?例如,我有这个网址

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

(来自jqGrid)

我的请求映射应该是什么样子的?我想使用 HttpReqest 获取参数

试过这个:

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

但它不起作用。


答案 1

在方法参数中使用@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才会执行此方法,从而避免了空值检查和相关内容。


答案 2

您可以这样添加:@RequestMapping

@RequestMapping("/userGrid")
public @ResponseBody GridModel getUsersForGrid(
   @RequestParam("_search") String search,
   @RequestParam String nd,
   @RequestParam int rows,
   @RequestParam int page,
   @RequestParam String sidx) 
   @RequestParam String sord) {

推荐