SpringMVC @RequestHeader、@CookieValue、@ModelAttribute

通过@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";
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柏油

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值