Spring Controller使用Map获取HttpServletRequest中的全部参数


记录一下,以前用过代码找不到了。

Spring Controller有三种接受参数的方法,就是定义参数,定义dto对象,或者用Map接受所有参数,在编写不需要重复使用或只简单处理不需要编写过多代码的情况下使用Map接受HttpServletRequest的全部参数,实际上可以使用HttpServletRequest接口中getParameterMap()方法,但此方法的返回类型是Map。如果你需要返回类型是Map就需要自己编程处理一下。实际上Spring Controller提供了一个十分方便的用法,就是使用注解@RequestParam。示例如下:

@PostMapping("/install/step3")
public ModelAndView doSomeAction(@RequestParam Map params) {
    // 请求参数自动封装到了params里面
    return new ModelAndView("redirect:/" + redirectUrl);
}