軟件是對質量的不懈追求

          Execute and Wait Interceptor 的使用(struts2)

          1、增加攔截器
              
                 <interceptor-ref name="execAndWait">
                      <!--等待時間,執行時間沒有超過此值,將不顯示等待畫面(毫秒)-->
                      <param name="delay">1000</param>
                      <!-- 間隔檢查時間,檢查后臺進程有沒有執行完畢,如果完成了它就立刻返回-->
                      <param name="delaySleepInterval">50</param>
                 </interceptor-ref>
            
                此攔截器必須放在所有攔截器的最后。    

          2、增加result

                 <result name="wait">wait.jsp</result>
           
                 如果沒有找到"wait"結果,struts2會自動生成一個wait結果(\org\apache\struts2\interceptor \wait.ftl).這個結果是用FreeMarker做的,所以需要Freemarker支持才能正常工作。如果你不想在程序中加入 FreeMarker,那就必須自己實現一個wait結果。這一般來說是有必要的,因為默認的wait頁面很簡單。

          3、Action實現SessionAware接口

                 因為這個action將會以單獨的線程執行,所以你不能用ActionContext,因為它是ThreadLocal.這也就是說如果你要訪問 session數據,你必須實現 SessionAware結構而不是調用ActionContext.getSesion() 。

                 public interface SessionAware{
                        public void setSession(Map map);
                 }

                 public abstract class AbsBasicAction extends ActionSupport implements SessionAware{
                      
                         /** 當前 Session */
                        protected Map session ;

                        public void setSession(Map session) {
                             this.session = session ;
                        }
                 }

          4、實現 wait 結果 映射的 wait.jsp

                 必須設置該頁面的meta信息,每隔5秒,重新請求一次前面的action。
                 <meta http-equiv="refresh" content="2;url=<s:url includeParams="all" />" />

          posted on 2009-11-14 13:31 BlakeSu 閱讀(274) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 海兴县| 聂荣县| 咸阳市| 镇坪县| 沙洋县| 准格尔旗| 孝昌县| 清水县| 柏乡县| 满洲里市| 柘荣县| 舟山市| 顺昌县| 含山县| 上栗县| 肇源县| 大田县| 沂南县| 治县。| 铜山县| 沽源县| 五指山市| 全州县| 青田县| 碌曲县| 昌邑市| 高雄市| 莱西市| 玛多县| 青岛市| 墨脱县| 阿拉善右旗| 资源县| 保定市| 青州市| 华容县| 中山市| 永平县| 杭锦后旗| 天台县| 建平县|