spring-mvc何时使用@CookieValue

时间:2013-10-09 20:20:15

标签: java spring-mvc cookies

在控制器中何时应该使用@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)

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并执行相应操作的逻辑需要。