通过@RequestHeader取得入参请求头中的信息:
@RequestMapping("/checkRequestHeader")
public String checkRequestHeader(@RequestHeader(value="Accept-Language") String requstHeader){
System.out.println("RequestHeader-Accept-Language:"+requstHeader);
return "";
}
输出:RequestHeader-Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
通过@CookieValue绑定请求中的Cookie值:
@RequestMapping("/checkCookieValue")
public String checkCookieValue(@CookieValue(value="JSESSIONID") String cookieValue) {
System.out.println("CookieValue:"+cookieValue);
return "";
}
输出:CookieValue:5B9FD05DBEE4004F4557C884FA1E7E07
@ModelAttribute的使用:
1)用于修饰参数:
@RequestMapping("/checkModelAttribute")
public String checkModelAttribute(@ModelAttribute("username") String username,Map map) {
System.out.println("username:"+map.get("username"));
return "users/ok";
}
根据客户端传过来的参数按名称注入到对象当中,并且自动加入到ModelMap中,供view层使用。
相当于:model.addAttribute("attributeName", abc);
2)用于修饰方法上(该控制类的所有映射都都会先通过这个被修饰的方法):
a、带返回值:
@ModelAttribute(value="username")
public String checkModelAttribute2(){
String username = "wangwu";
System.out.println("this is modelAttribute1");
return username;
}
@RequestMapping("/test")
public String test(Map map) {
System.out.println("username:"+map.get("username"));
return "users/ok";
}
通过返回值注入到ModelMap中
b、不带返回值:
@ModelAttribute(value="username")
public void checkModelAttribute3(Map map) {
String username = "zhouqi";
System.out.println("this is modelAttribute2");
map.put("username", username);
}
@RequestMapping("/test")
public String test(Map map) {
System.out.println("username:"+map.get("username"));
return "users/ok";
}
二、@SessionAttributes:将特定的属性值保存在session范围内:
如:
@SessionAttributes(value="username",types=String.class)
public class LoginController {
@RequestMapping("/check1")
public String check1(Map map){
String username = "lisi";
String sex = "man";
map.put("username", username);
map.put("sex", sex);
return "users/ok";
}
@RequestMapping("/check2")
public String check2(Map map) {
System.out.println("姓名:"+map.get("username"));
System.out.println("性别:"+map.get("sex"));
return "users/ok";
}
SessionStatus可以清除session对象中保存的属性值
@RequestMapping("/check2")
public String check2(Map map,SessionStatus sessionStatus) {
sessionStatus.setComplete();
System.out.println("姓名:"+map.get("username"));
System.out.println("性别:"+map.get("sex"));
return "users/ok";
}