Java 在Struts2中设置cookie值的正确方法

Java 在Struts2中设置cookie值的正确方法,java,jakarta-ee,struts2,Java,Jakarta Ee,Struts2,我从Struts2教科书中获取了以下代码示例,代码的目的是在Action类中设置cookie,然后jsp页面应该从cookie中取出内容,然后显示 登录类: public class LoginAction implements Action,ServletResponseAware{ private HttpServletResponse response; ... public void setServletResponse(HttpServletRespon

我从Struts2教科书中获取了以下代码示例,代码的目的是在Action类中设置cookie,然后jsp页面应该从cookie中取出内容,然后显示

登录类:

 public class LoginAction implements Action,ServletResponseAware{
    private HttpServletResponse response;
        ...
   public void setServletResponse(HttpServletResponse response)
   {
      this.response=response;
   }

   public String execute() throws Exception
   { 
      Cookie c= new Cookie("user",getUsername());
      c.setMaxAge(60*60);

      response.addCookie(c);
      return SUCCESS;
   }  
JSP页面:

 <html>
  <head>

  <title>Cookie Success Page</title>
  </head>
  <body>
   <br/>Welcome ${cookie.user.value}, thanks for logging in.
  </body>
 </html> 

Cookie成功页面

欢迎${cookie.user.value},感谢您的登录。
我现在遇到的问题是,
${cookie.user.value}
将始终显示为空白,无论我提供了什么用户名


也许这不是在Struts2中设置cookie值的好方法?

cookie
只是幕后的一个映射。要从EL访问映射接口,请使用
${cookie[“user”].value}

创建cookie,必须使用
HttpServletResponse
。我使用
servletConfig
拦截器,并为
HttpServletRespose

创建setter/getter方法,这对我很有效。如果启用了cookie,您是否检查了浏览器配置?是的,我已检查了不同的浏览器。