Spring MVC的Cookie问题

Ton*_*ony 1 java cookies session spring

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

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



        response.addCookie(new Cookie("flag", "In use"));
...
Run Code Online (Sandbox Code Playgroud)

sou*_*eck 7

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

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

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

默认值为true,导致在请求中缺少标头时抛出异常.如果您在缺少标题时更喜欢null,请将其切换为false.

或者,提供defaultValue,隐式将此标志设置为false.

  • @JohnSmith意味着cookie是可选的,如果不存在,则注释参数将设置为null. (2认同)
  • @JohnSmith一旦你有一个`Cookie`实例,你可以使用`Cookie.setMaxAge()` (2认同)