隨筆 - 6  文章 - 129  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(14)

          隨筆檔案(6)

          文章分類(467)

          文章檔案(423)

          相冊(cè)

          收藏夾(18)

          JAVA

          搜索

          •  

          積分與排名

          • 積分 - 827240
          • 排名 - 49

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          今天寫了一個(gè)自定義攔截器.卻遇到了以下問題

          package dgut.ke.interceptors;

          import java.util.ArrayList;
          import java.util.List;

          import javax.servlet.http.HttpServletRequest;

          import org.apache.struts2.ServletActionContext;

          import com.opensymphony.xwork2.Action;
          import com.opensymphony.xwork2.ActionContext;
          import com.opensymphony.xwork2.ActionInvocation;
          import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;

          import dgut.ke.model.Catalog;
          import dgut.ke.model.Publish;
          import dgut.ke.model.Subject;
          import dgut.ke.service.ICatalogService;
          import dgut.ke.service.IPublishService;
          import dgut.ke.service.ISubjectService;

          public class AddBookInterceptor extends MethodFilterInterceptor {

           /**
            *
            */
           private static final long serialVersionUID = 1135497226250835266L;

           private ISubjectService subjectService ;
           private ICatalogService catalogService ;
           private IPublishService publishService ;

           public ICatalogService getCatalogService() {
            return catalogService;
           }

           public IPublishService getPublishService() {
            return publishService;
           }

           public ISubjectService getSubjectService() {
            return subjectService;
           }

           public void setCatalogService(ICatalogService catalogService) {
            this.catalogService = catalogService;
           }

           public void setPublishService(IPublishService publishService) {
            this.publishService = publishService;
           }

           public void setSubjectService(ISubjectService subjectService) {
            this.subjectService = subjectService;
           }

           @Override
           protected String doIntercept(ActionInvocation invoation) throws Exception {
            // TODO 自動(dòng)生成方法存根
            System.out.println("-------- 攔截器開始執(zhí)行 ----------");
            List<Subject> subject_list = (ArrayList<Subject>)subjectService.findAll();
            List<Catalog> catalog_list = (ArrayList<Catalog>)catalogService.findAll();
            List<Publish> pubish_list =  (ArrayList<Publish>)publishService.findAll();

            //ActionContext act = ActionContext.getContext() ;
            ActionContext act = invocation.getInvocationContext() ;
            HttpServletRequest request = (HttpServletRequest) act.get(ServletActionContext.HTTP_REQUEST) ;
            request.setAttribute("subject_list", subject_list) ;
            request.setAttribute("catalog_list", catalog_list) ;
            request.setAttribute("publish_list", pubish_list) ;
            System.out.println("-------- 攔截器執(zhí)行結(jié)束 ----------");
            return Action.INPUT;
           }

          }
          為了實(shí)現(xiàn)request.setAttribute(String str, Object obj) ;.最先是讓上面的類實(shí)現(xiàn)ServletRequestAware 接口.
          但是在運(yùn)行的時(shí)候卻出現(xiàn)了空指針異常。后來改成以上的代碼就可以正常運(yùn)行,但是還是
          不太明白
          曾經(jīng)在一本書上看到一段話:構(gòu)建interceptor最重要的原則:interceptor必須是無狀態(tài)的,并且不能
          夠使用任何ActionInvocation提供范圍以外的API



          posted on 2007-10-06 21:54 Ke 閱讀(2475) 評(píng)論(0)  編輯  收藏 所屬分類: exceptionstruts 2問題區(qū)
          主站蜘蛛池模板: 信阳市| 荆州市| 融水| 广汉市| 金山区| 江孜县| 新民市| 永济市| 高要市| 靖宇县| 盐山县| 克东县| 紫云| 晴隆县| 海口市| 长白| 克什克腾旗| 雷波县| 夹江县| 高雄市| 财经| 镇坪县| 中超| 合阳县| 外汇| 万州区| 黄梅县| 金寨县| 衡阳市| 大足县| 瓦房店市| 新郑市| 靖宇县| 措勤县| 铜梁县| 元阳县| 利川市| 永登县| 万荣县| 海南省| 霍邱县|