SpringMVC接收请求参数的方式

SpringMVC接收请求参数的常见方式有如下几种:

  1. 传统方式:req.getParameter()
    /**
	 * 传统方式
	 * @param req
	 * @return
	 */
	@RequestMapping("/test.do")
	public String test(HttpServletRequest req){
		System.out.println("请求来了");
		System.out.println(req.getParameter("userName"));
		System.out.println(req.getParameter("password"));
		return "index";
	}
  1. 直接在方法形参列表中写形参变量:形参变量名称与请求参数名称一致
    /**
	 * 使用SpringMVC的参数绑定来获取请求参数
	 * @param userName
	 * @param password
	 * @param age
	 * 注意:
	 * 	1)形参变量名称要与请求中的参数名称保持一致【严格区分大小写】
	 *  2)支持自动类型转化,但是转化失败就无法进入当前方法去处理请求,报错400【Bad Request】
	 *  3)8种基本数据类型尽量使用包装类型
	 *  当请求参数名称与方法形参变量名称不一致时,需要使用@RequestParam注解
	 * @return
	 */
	@RequestMapping("/test2.do")
	public String test2(String password,String userName,Integer age){
		System.out.println("请求来了");
		System.out.println(userName);
		System.out.println(password);
		System.out.println(age);
		return "index";
	}
  1. 直接在方法形参列表中写形参变量+@ReqquestParam:形参变量名称与请求参数名称不一致
    /**
	 * 当请求参数名称与方法形参变量名称不一致时,需要使用@RequestParam注解
	 * @param pwd
	 * @param uName
	 * @param age
	 * @return
	 */
	@RequestMapping("/test3.do")
	public String test3(@RequestParam("password")String pwd,@RequestParam("userName")String uName,@RequestParam("age")Integer age){
		System.out.println("请求来了");
		System.out.println(uName);
		System.out.println(pwd);
		System.out.println(age);
		return "index";
	}
  1. 直接使用domain实体类对象接收:实体类对象的属性名称与请求参数名称一致,而且属性必须有set方法、domain实体类必须有无参构造
    /**
	 * 使用参数绑定【封装成domain实体类对象,并且将此对象保存到请求作用域中】
	 * @param user
	 * @return
	 */
	@RequestMapping("/test4.do")
	public String test4(User user){
		System.out.println("请求来了");
		System.out.println(user.getUserName());
		System.out.println(user.getPwd());
		System.out.println(user.getAge());
		return "index";
	}
  1. 使用RESTFUL风格:@PathVariable(“aa”) aa字符串仍然要与方法映射中的变量名称一致
    /**
	 * RESTful风格【路径中的变量来传参】
	 * 	要求DispatcherServlet核心控制器的url-pattern必须配置为 /
	 * http://localhost:8080/demo/p/admin/123
	 * 
	 * 注意:
	 * 		访问的请求路径中直接填值,传递到方法上,注意顺序
	 * @param userName
	 * @param pwd
	 * @return
	 */
	@RequestMapping("/{userName}/{pwd}")
	public String test5(@PathVariable("userName")String userName,@PathVariable("pwd")String pwd){
		System.out.println("请求来了");
		System.out.println(userName);
		System.out.println(pwd);
		return "index";
	}

注意:请求参数传递过来都是字符串类型,SpringMVC会自动进行类型转化,若转化失败会报400错误。

你可能感兴趣的:(java技术文章,springmvc接收请求参数)