我从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值的好方法吗?
答案 0 :(得分:2)
cookie
只是Map
。要使用${cookie["user"].value}
从EL访问Map界面
答案 1 :(得分:0)
要创建Cookie,HttpServletResponse
必须有效。它对我使用servletConfig
拦截器并为HttpServletRespose
创建setter / getter方法很有用。