SpringMVC接受请求参数

时间:2022-07-22
本文章向大家介绍SpringMVC接受请求参数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

数据传送到控制器的方法:

  • 查询参数
  • 表单参数
  • 路径变量

获取查询路径中参数@PathVariable

@RequestMapping(value="/addUser4/{username}/{password}",method=RequestMethod.GET)
public String addUser4(@PathVariable String username,@PathVariable String password) {
        System.out.println("username is:"+username);
        System.out.println("password is:"+password);
        return "demo/index";
    }

在RequestMapping中配置参数名,同时与方法的参数名相同,需要在前面加上@PathVariable注解

http://localhost:8080/WxProgram/zhang/123

用注解@RequestParam绑定请求参数到方法入参

@RequestMapping(value="/addUser6",method=RequestMethod.GET)
    public String addUser6(@RequestParam("username") String username,@RequestParam("password") String password) {
        System.out.println("username is:"+username);
        System.out.println("password is:"+password);
        return "demo/index";
    }

当请求参数username不存在时会有异常发生,可以通过设置属性required=false解决,例如: @RequestParam(value="username", required=false)

defaultValue:默认值,如果设置了该值,required 将自动设为 false,

无论你是否配置了required,配置了什么值,都是 false(可选配置)

http://localhost:8080/WxProgram?username=zhang&password=123

当然也可以不使用@RequiredParam注解,直接去掉,只有参数名和controller方法中参数名相同即可。

通过HttpServletRequest接收

post方式和get方式都可以

 @RequestMapping("/addUser2")
    public String addUser2(HttpServletRequest request) {
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        System.out.println("username is:"+username);
        System.out.println("password is:"+password);
        return "demo/index";
    }

通过一个bean来接收

 @RequestMapping("/addUser3")
    public String addUser3(UserModel user) {
        System.out.println("username is:"+user.getUsername());
        System.out.println("password is:"+user.getPassword());
        return "demo/index";
    }

post方式和get方式都可以

User和要传的参数一致

也可以在前面加上@ModelAttribute注解

使用@ModelAttribute注解获取POST请求的FORM表单数据

 @RequestMapping(value="/addUser5",method=RequestMethod.POST)
    public String addUser5(@ModelAttribute("user") UserModel user) {
        System.out.println("username is:"+user.getUsername());
        System.out.println("password is:"+user.getPassword());
        return "demo/index";
    }