解决方案 »

  1.   

       public void doFilter(ServletRequest arg0, ServletResponse arg1,
                FilterChain chain) throws IOException, ServletException {
             HttpServletRequest request=(HttpServletRequest) arg0;    //等执行完成后  我去一个工具类获取事先准备好的分页类
                      Paging paging= SysThreadLocal.getPageClazz();
                   //然后放到作用域。
                request.setAttribute("paging", paging );
                      //过滤器前一些操作
                 chain.doFilter(arg0, arg1);
                 
           }
    要不要试试反写?我总觉得你过滤完以后action就直接跳转页面了  你后面的代码就不执行了 也不知道对不对
      

  2.   

      chain.doFilter(arg0, arg1);
    这句话执行后才执行的action里面的方法,如果放到  chain.doFilter(arg0, arg1);
    之前,也就是说还没有执行action,那么分页类也会是一个空,因为分页的数据是action 调service调dao最后算出来的!
      

  3.   

      chain.doFilter(arg0, arg1);
    这句话执行后才执行的action里面的方法,如果放到  chain.doFilter(arg0, arg1);
    之前,也就是说还没有执行action,那么分页类也会是一个空,因为分页的数据是action 调service调dao最后算出来的!
    但是   chain.doFilter(arg0, arg1); 已经是拦截执行完毕 进行下一页正常跳转 跳入了你的action,那么你的request不写在前面怎么用?要不就提出个baseaction  每次在action里调用吧。 理解不是太好 
      

  4.   

      chain.doFilter(arg0, arg1);
    这句话执行后才执行的action里面的方法,如果放到  chain.doFilter(arg0, arg1);
    之前,也就是说还没有执行action,那么分页类也会是一个空,因为分页的数据是action 调service调dao最后算出来的!
    但是   chain.doFilter(arg0, arg1); 已经是拦截执行完毕 进行下一页正常跳转 跳入了你的action,那么你的request不写在前面怎么用?要不就提出个baseaction  每次在action里调用吧。 理解不是太好 
    执行流程是什么?这个我还真的不太理解。是页面发起请求,request携带参数经过过滤器还是先经过struts2的拦截器?然后到action。最后又是怎么样的呢 谢谢!
      

  5.   

      chain.doFilter(arg0, arg1);
    这句话执行后才执行的action里面的方法,如果放到  chain.doFilter(arg0, arg1);
    之前,也就是说还没有执行action,那么分页类也会是一个空,因为分页的数据是action 调service调dao最后算出来的!
    但是   chain.doFilter(arg0, arg1); 已经是拦截执行完毕 进行下一页正常跳转 跳入了你的action,那么你的request不写在前面怎么用?要不就提出个baseaction  每次在action里调用吧。 理解不是太好 
    执行流程是什么?这个我还真的不太理解。是页面发起请求,request携带参数经过过滤器还是先经过struts2的拦截器?然后到action。最后又是怎么样的呢 谢谢!
    页面A > 拦截器Filter >  Struts.action > 页面B
    页面A > 拦截器Filter >  拦截返回 > 页面A理解就是 
    页面A (变量S)> 拦截器(变量S) 进行验证 结果有2
    一 验证不拦截   chain.doFilter(arg0, arg1);执行下一步action 变量S 进入action中 拦截器中变量失效
    二 验证拦截     response.sendRedirect("error/page.jsp"); return; 返回一个你想提示的错误页面或原页面好久没看了  大概我的理解就是这 也就是说
    在 chain.doFilter 或return的时候 你doFilter就已经验证结束了,所以你在chain.doFilter下面写的
    码码就已经失效了 不可能在request传递了 session是作用于的问题
    如果实在想用的话 你可以在action执行完毕后 在进行一次dofilter 就是 拦截>执行action>再拦截
    理论就是个这样吧 ~希望没误人子弟