目录
1、通过servletAPI获取参数
其实还是像原来在servlet中获取参数一样。
@ResquestMapping("/mapper")
public String testParam(HttpServletRequest request){
String username = request.getParameter("username");
String password = request.getParameter("password");
return "success.jsp";
}
2、通过控制器的形参获取参数
在控制器中的参数设置与请求参数名字一样就可以获取到。
@ResquestMapping("/mapper")
public String testParam(String username,String password){
return "success.jsp";
}
注意:如果传过来是一个数组,也可以直接用String来接收(接收后类似于a,b,c这样的形式输出),也可以用数组来接收。
3、@RequestParam
@ResquestParam是将请求参数和控制器方法创建映射关系。
@ResquestParam注释下有三个参数:
- value:指定为形参赋值的请求参数的参数名
- required:设置是否必须传输此请求参数 默认值为true 若设置为true时,则当前请求参数必须传输value所指定的请求参数,且没有设置defaultValue,则页面报错400: Required String Parameter 'xxx' is not present; 若设置为false,则当前请求不是必须传输value所指定的请求参数。若没有传输,则注释所标识的形参的值则为null。
- defaultValue: 不管required是否设置为true,如果没有传输该请求参数,则都是取默认值。
@ResquestMapping("/mapper")
public String testParam(@RequestParam(
value = "username",required = true,defaultValue = "1111")
String name,String password){
return "success.jsp";
}
4、@RequestHeader
@RequestHeader 将请求头的信息和控制器方法的形参创建映射关系
@RequestHeader 注解有三个参数value,required,defaultValue,用法同@RequestParam一样。
下面这个例子就可以获取host下的值
@ResquestMapping("/mapper")
public String testParam(@RequestHeader(value = "Host")
String host,String name,String password){
return "success.jsp";
}
5、@CookieValue
@RequestHeader 将cookie数据和控制器方法的形参创建映射关系
@RequestHeader 注解有三个参数value,required,defaultValue,用法同@RequestParam一样。
下面就可以获取到SessionID
@ResquestMapping("/mapper")
public String testParam(@CookieValue(value = "JSESSIONID")
String jsession,String name,String password){
return "success.jsp";
}
6、通过POJO获取参数
//实体类中的属性值要和传进来的请求参数名一致 形参只要符合条件都会被附上值
@ResquestMapping("/mapper")
public String testParam(User user){
return "success.jsp";
}
7、post请求
如果是post请求,直接接收是接受不到,因为请求类型不一样,需要把其转成json通过注释@ResponseBody
@ResquestMapping("/mapper")
public String testParam(@ResponseBody User user){
return "success.jsp";
}