3.8 @CookieValue注解
org.springframework.web.bind.annotation.CookieValue注解用于将请求的Cookie数据映射到请求处理方法的形式参数上。
使用@CookieValue注解可指定如下表所示的属性
| 属性 | 类型 | 是否必要 | 说明 | ||
|---|---|---|---|---|---|
name |
String |
否 | 指定请求参数绑定的名称 | ||
value |
String |
否 | name属性的别名 |
||
required |
boolean |
否 | 指示参数是否必须绑定 | ||
defaultValue |
String |
否 | 如果没有传递参数而使用的默认值 | ||
| jsessionid | |||||
@CookieValue注解示例代码如下: |
|||||
|
以上配置会自动将Cookie中JSESSIONID的值设置到方法的sessionId形式参数上, defaultValue表示Cookie中没有JSESSIONID时默认设置sessionId为空字符串。
示例:@CookieValue注解的使用
新建一个项目CookieValueTest,加入所需的jar文件,示例代码如下:
CookieValueController.java
1 | package org.fkit.controller; |
cookieValueTest方法会自动将Cookie中JSESSIONID的值赋值给sessionId形式参数,如果Cookie中没有JSESSIONID时默认设置sessionId为空字符串。
index.jsp
1 | <%@ page language="java" contentType="text/html; charset=UTF-8" |
部署CookieValueTest这个Web应用,在浏览器中输入如下URL来测试应用:
1 | http://localhost:8080/CookieValueTest/ |
单击”测试@CookieValue注解”超链接发送请求,将调用cookieValueTest方法,控制台输出结果如下
1 | 通过@CookieValue获得JSESSIONID: 22334F73E67C6C486559D98FF00539CB |
可以看到,请求中JSESSIONID的值被传递到方法的sessionId变量并输出打印在控制台。
原文链接: 3.8 @CookieValue注解