1

我试图使用@Cookie. 但是,如果 cookie 值为空,我会收到 400 错误。怎么了?这是我的控制器:

    public String listContacts(Map<String, Object> map,
            HttpServletResponse response, @CookieValue("flag") String flag) {



        response.addCookie(new Cookie("flag", "In use"));
...
4

1 回答 1

9

尝试required = false@CookieValue注释中设置:

public String listContacts(Map<String, Object> map,
      HttpServletResponse response, @CookieValue(value = "flag", required = false) String flag) {

默认情况下,spring 期望 cookie 标头存在,否则抛出异常:

默认值为 true,如果请求中缺少标头,则会引发异常。如果您希望在缺少标头的情况下使用 null,请将其切换为 false。

或者,提供一个 defaultValue,它会将此标志隐式设置为 false。

于 2013-08-19T22:18:33.923 回答