看起来struts仅支持读取cookie,您必须转到servlet响应以实际 设置 cookie。
最后,我选择完全绕过struts2 cookie支持,直接进入servlet请求/响应对象进行读写:
public class MyAction extends ActionSupport implements ServletResponseAware, ServletRequestAware { public int division; public String execute() { // Load from cookie for(cookie c : servletRequest.getcookies()) { if (c.getName().equals("cookieDivision")) division=Integer.parseInt(c.getValue()); } // Save to cookie cookie div = new cookie("cookieDivision", String.format("%d",division)); div.setMaxAge(60*60*24*365); // Make the cookie last a year servletResponse.addcookie(div); return "success"; } // For access to the raw servlet request / response, eg for cookies protected HttpServletResponse servletResponse; @Override public void setServletResponse(HttpServletResponse servletResponse) { this.servletResponse = servletResponse; } protected HttpServletRequest servletRequest; @Override public void setServletRequest(HttpServletRequest servletRequest) { this.servletRequest = servletRequest; }}而且在struts.xml或web.xml中都不需要为此方法进行配置,这是一个好处。因此,即使该解决方案确实在光线不佳的情况下喷涂了struts2,我也对它感到满意。



