通过ServletAPI获取
@RequestMapping("/testAPI")
public String testAPI(HttpServletRequest request){
String name = request.getParameter("name");
String password = request.getParameter("password");
System.out.println(name + " : " + password);
return "target";
}
<a th:href="@{/testAPI(name='harry', password=123)}">通过ServletAPI获取</a>
通过控制器方法的形参获取
- 在控制器方法的形参位置,设置和请求参数同名的形参,当浏览器发送请求,匹配到请求映射时,在DispatcherServlet中就会将请求参数赋值给相应的形参
- 若出现多个同名请求参数
- 使用字符串接收,是多个值用,拼接
- 使用字符串数组
// 2.SpringMVC 多个value 使用 , 拼接
@RequestMapping("/testParam1")
public String testParam1(String name, String password, String hobby){
System.out.println(name + " " + password + " " + hobby);
return "target";
}
// 使用数组接收
@RequestMapping("/testParam2")
public String testParam2(String name, String password, String[] hobby){
System.out.println(name + " " + password + " " + Arrays.toString(hobby));
return "target";
}
通过pojo获取
可以在控制器方法的形参位置设置一个实体类类型的形参,此时若浏览器传输的请求参数的参数名和实体类中的属性名一致,那么请求参数就会为此属性赋值。
//3.通过bean对象获取
@RequestMapping("/testBean")
public String testBean(User user){
System.out.println(user);
return "target";
}