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

时间:2012-12-27 02:36:52

标签: java java-ee struts2

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

LoginAction类:

 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.user.value}将始终显示为空白,无论我提供的用户名是什么。

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

2 个答案:

答案 0 :(得分:2)

幕后的{p> cookie只是Map。要使用${cookie["user"].value}

从EL访问Map界面

答案 1 :(得分:0)

要创建Cookie,HttpServletResponse必须有效。它对我使用servletConfig拦截器并为HttpServletRespose创建setter / getter方法很有用。