WebSphere Portal에서 포틀릿 용 JSR286, Struts2를 사용하여 웹 애플리케이션을 만들고 있습니다. 6.1.5 문제점은 CookieInterceptor에서 빌드 된 작업을 할 수 없다는 것입니다. 나는 SRC/struts.xml이 시도했습니다 :Struts2 포틀릿은 CookieInterceptor를 사용하여 쿠키를 읽습니다.
<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>
그리고 액션 : setCookiesMap가 호출되지 않습니다
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;
}
}
방법. 필자는 firebug를 사용했습니다. 요청 헤더에 JQuery 쿠키 플러그인을 사용하여 설정 한 "my-filter-cookie"가 있습니다. Mozilla 용 WebDeveloper는 브라우저에 쿠키가 있음을 보여주고 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>
다시 실패합니까? 내가 뭘 잘못 했니? 제발, 제안 해.
방금 가져 왔습니다. 나는 ** 인터셉터 **가 ** default-interceptor-ref **로 정의 된 스택에 추가 될 것이라고 생각했지만 그것은 내 실수였습니다. – Sergey
SystemOut.log에 이상한 예외가 있습니다 : – Sergey
[22.11.10 23 : 31 : 30 : 177 MSK] 0000006c SystemOut 11/22 23 : 31 : 30.176 [WARN] com.opensymphony.xwork2.util.logging.commons.CommonsLoggerOgnl ValueStack : 값이 'SOME-VALUE-GOEs-HERE'인 com.opensymphony.xwork2.util.logging.commons.CommonsLoggerError 식 'my-filter-cookie': (my- filter) - 쿠키 at ognl.SimpleNode. setValueBody (SimpleNode.java:257) 이유가 무엇입니까? my-filter-cookie는 쿠키입니다 ... 이해하지 못합니다. OGNL에 '-'기호가 혼동을 일으킬 수 있습니까? – Sergey