这一章我们将主要学习如何在控制器方法中获取客户端或游览器发送过来的请求参数
接下来我们将介绍以下几种方式
方式一:通过Servlet原生API获取
这个方法是最原始的一个方法,一般不使用,使用了就是在侮辱SpringMVC
将HttpServletRequest设为控制器方法的形参,通过调用该对象的getParameter()方法获取请求参数
@RequestMapping("/testParam")
public String testParam(HttpServletRequest request){
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println("username:"+username+",password:"+password);
return "success";
}
方式二:通过控制器方法设置同名形参
我们可以通过在控制器方法参数中设置与请求参数同名的形参来获取请求参数,一般不使用
@RequestMapping("/testParam")
public String testParam(String username, String password){
System.out.println("username:"+username+",password:"+password);
return "success";
}
方式三:通过@RequestParam注解获取(常用)
@RequestParam的作用是将请求参数和控制器方法的形参建立映射关系
该注解包括三个属性:
value:指定为形参赋值的请求参数名
required:设置是否必须传输此请求参数,默认为true
defaultValue:当value所指定的请求参数没有传输过来,或者传输的值为“”,则使用defaultValue为形赋值
@RequestMapping("/testParam")
public String testParm(
@RequestParam(value="user_name",required = false,defaultValue = "user") String username,
){
//如果请求中携带了多个同名的请求参数,可以通过设置字符串形参接收参数,也可以通过字符串数组形参接收参数
System.out.println("username=" + username + " password=" + password + " hobby=" + hobby);
return "success";
}
方式四:通过实体对象获取参数(常用)
可以在控制器方法的形参位置设置一个实体类类型的形参,此时若浏览器传输的请求参数的参数名和实体类中的属性名一致,那么请求参数就会为此属性赋值
提交的请求参数:
<form th:action="@{/testpojo}" method="post">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
性别:<input type="radio" name="sex" value="男">男<input type="radio" name="sex" value="女">女<br>
年龄:<input type="text" name="age"><br>
邮箱:<input type="text" name="email"><br>
<input type="submit">
</form>
通过User对象获取
@RequestMapping("/testpojo")
public String testPOJO(User user){
System.out.println(user);
return "success";
}
//最终结果-->User{id=null, username='张三', password='123', age=23, sex='男', email='123@qq.com'}
今天的SpringMVC获取请求参数就介绍到这啦,若对你有帮助的话就点个赞👍吧~
关注博主,宝藏多多~