2010-08-24 38 views
0

我在使用struts2進行會話管理時遇到問題。我在攔截器中設置會話中的一個屬性,該攔截器是我整個應用程序的默認攔截器。在我的行動中,我正在實施SessionAware界面並將會話作爲一個Map來抓取。但是我在攔截器中設置的屬性並不出現在我的動作中的會話映射中。我是否錯過了我的baseAppStack中的任何默認攔截器或任何想法我缺少的東西?在struts.xml中攔截器中的會話管理和struts 2應用程序的動作

我的截擊定義:

我的截擊代碼:

HttpSession session = request.getSession (true); 
params = (SessionParams)session.getAttribute(Constants.KEY_SESSION_PARAMS); 

如果(PARAMS == NULL){

 //some code to populate params 

session.setAttribute(Constants.KEY_SESSION_PARAMS,則params); }

我的行動代碼:

Map session = getSession(); 
SessionParams params = (SessionParams) session.get(Constants.KEY_SESSION_PARAMS); 
+0

攔截器定義: \t \t <攔截> \t \t \t <攔截名稱= 「baseInterceptor」 類= 「com.interceptors.BaseInterceptor」> \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t <攔截器參考名稱= 「defaultStack」/> \t \t \t \t \t \t \t <默認攔截-ref name =「baseAppStack」> chandu 2010-08-24 20:13:24

回答

0

攔截器的定義是缺少我的我以前的帖子。不知道爲什麼,但當我提交它時,我已經知道了。

攔截器的定義:

<interceptors> 
     <interceptor name="baseInterceptor" class="com.interceptors.BaseInterceptor"> 
     </interceptor> 

     <interceptor-stack name="baseAppStack"> 
      <interceptor-ref name="baseInterceptor" /> 
      <interceptor-ref name="defaultStack" /> 
     </interceptor-stack> 
    </interceptors> 
    <default-interceptor-ref name="baseAppStack"></default-interceptor-ref> 
0

聽起來不錯。調試你的攔截器代碼(一個斷點或一些日誌行)以檢查它是否被調用。和/或複製攔截器的完整代碼。