在控制器中何时应该使用@CookieValue?
只有当您知道您确定该cookie会存在时才会出现?
我有这个控制器:
@Controller
@RequestMapping("my")
public class MyController {
@RequestMapping("")
public ModelAndView index(@CookieValue("myCookie") String cookie,
Map<String, Object> model){
log.info("My cookie {}", cookie);
(...)
}
当设置cookie时,调用该方法没问题,但是当没有设置cookie时,方法不被调用,我想我的控制器中没有另一个方法映射到同一路径。
(我的Spring版本:3.2.3)
答案 0 :(得分:14)
Kal在评论中回答,我把答案标记为回答/关闭。
@CookieValue
有一个必需参数,默认设置为true。
所以,
@CookieValue(value="myCookie", required=false)
解决了我的问题。
答案 1 :(得分:3)
我想你也可以使用属性&#34; defaultValue&#34;。 它看起来像是:
@CookieValue(value="name", defaultValue="someValue")
答案 2 :(得分:1)
在我看来:
cookie default
- 逻辑隐藏检查中的以下陈述是否有cookie,因为它总是有一个(默认与否)
cookie required
- 检查是否有cookie并执行相应操作的逻辑需要。