我正在使用 JSR286、Struts2 为 WebSphere Portal 6.1.5 上的 portlet 创建 Web 应用程序问题是我无法在 CookieInterceptor 中构建工作。我在src/struts.xml中试过这个:
<package name="web-app-default" extends="struts-portlet-default , json-default" abstract="true">
<interceptors>
<interceptor name="superInterceptor" class="ru.app.SuperInterceptor" />
<interceptor-stack name="ekp-cookie-stack">
<interceptor-ref name="cookie">
<param name="cookiesName">my-filter-cookie</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="portletDefaultStack" />
<global-results>
<result name="error">/jsp/common/error.jsp</result>
</global-results>
</package>
和行动:
public abstract class EventGeneralAction extends GeneralAction implements CookiesAware{
//some code...
/** {@link CookieInterceptor} should inject ekp-filter-cookie. */
@SuppressWarnings("unchecked")
public void setCookiesMap(Map cookies){
LOG.trace("#setCookiesMap -> cookies[{}]", cookies);
this.cookies = cookies;
}
}
不调用方法setCookiesMap 。我用过萤火虫,我真的看到了,那个请求头里面有我的“my-filter-cookie”(使用 JQuery cookie 插件设置)。WebDeveloper for Mozilla 显示浏览器有这样的 cookie,它将在 CURRENT_TIME+1 年过期。
我尝试了另一种配置。我已经写了拦截器:
<!-- Shows events on desired day of year. ShowDayEventsAction is a subclass of EventGeneralAction -->
<action name="main" class="ru.app.ShowDayEventsAction" >
<interceptor-ref name="cookie">
<param name="cookiesName">my-filter-cookie</param>
</interceptor-ref>
<result>/jsp/event/view/day.jsp</result>
</action>
又失败了……?我做错了什么?请,建议。