Spring MVC获取请求参数的几种方式
SpringMVC获取请求参数可以有多种方式实现,对请求方式上也有些差异,现做下总结。
从前端(浏览器)发送请求到后端基本脱离不了POST,GET
两种方式,其它方式在应用中几乎绝迹,不参与分析。SpringMVC获取这两种请求的参数有多种方式。
请求地址
统一定义请求方式和参数
GET
请求:http://localhost/sys/sysUserLogin?account=admin&password=112233POST
请求`:http://localhost/sys/sysUserLogin,参数是{"name":"admin","password":"112233"}GET
的Restful
风格请求:http://localhost/sys/sysUserLogin/admin/1122331
系统用户实体类:SysUser
1 | public class SysUser { |
Controller方法接收参数
方法中定义形参接收
方法中的形参类型和形参名与请求的参数匹配,可以自动接收请求的参数。GET
和POST
两种方式都支持。
1 |
|
方法中使用对象接收
方法中的对象属性与请求的参数匹配,可以将值自动绑定到对象对应属性上。GET
和POST
两种方式都支持。
1 |
|
HttpServletRequest接收
通过HttpServletRequest
的getParameter()
方法从request
中取值。GET
和POST
两种方式都支持。
1 |
|
@PathVariable绑定
@PathVariable
注解可以把路径中的参数绑定到方法中的形参上。
请求链接:http://localhost/sys/sysUserLogin/admin/1122331
只支持GET
方式。
1 |
|
@ModelAttribute绑定
@ModelAttribute
注解可作用在方法上,也可作用在方法形参上。GET
和POST
两种方式都支持。
- 把请求参数绑定在形参上
1
2
3
4
5
6
7
8
9
10
11
12//绑定形参
public class SysUserController {
public void sysUserLogin(
String account,
String password){
System.out.println("account = " + account + "; password = " + password);
}
}参考:SpringMVC之@ModelAttribute注解的使用1
2
3
4
5
6
7
8
9
10
11
12
132. 把请求参数绑定用户实体类属性上。
``` java
//绑定用户实体类
@Controller
@RequestMapping("/sys")
public class SysUserController {
@RequestMapping("/sysUserLogin")
public void sysUserLogin(@ModelAttribute SysUser sysUser,
HttpServletRequest req) {
System.out.println("请求方式:" + req.getMethod() + "; sysUser = " + sysUser);
}
}@RequestParam绑定
@RequestParam
注解可以把请求参数绑定在方法形参上。GET
和POST
两种方式都支持。1
2
3
4
5
6
7
8
9
10
11
public class SysUserController {
public void sysUserLogin(
String account,
String password){
System.out.println("account = " + account + "; password = " + password);
}
}
Spring MVC获取请求参数的几种方式
http://blog.gxitsky.com/2018/01/26/SpringMVC-19-receiveReqParamMethod/