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

          常用鏈接

          留言簿(14)

          隨筆檔案(6)

          文章分類(467)

          文章檔案(423)

          相冊

          收藏夾(18)

          JAVA

          搜索

          •  

          積分與排名

          • 積分 - 827222
          • 排名 - 49

          最新評論

          閱讀排行榜

          評論排行榜

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

          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 自動生成方法存根
            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;
           }

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



          posted on 2007-10-06 21:54 Ke 閱讀(2475) 評論(0)  編輯  收藏 所屬分類: exceptionstruts 2問題區(qū)
          主站蜘蛛池模板: 邯郸市| 囊谦县| 台东市| 湖北省| 永兴县| 无极县| 安阳县| 五峰| 武汉市| 格尔木市| 兴安盟| 禄丰县| 辽宁省| 佛学| 扬中市| 泗洪县| 长兴县| 手机| 西和县| 治多县| 夏邑县| 延寿县| 凤山市| 从化市| 定南县| 大名县| 梓潼县| 敖汉旗| 红原县| 新绛县| 宜君县| 南通市| 隆昌县| 砀山县| 六盘水市| 秭归县| 屏山县| 宾川县| 治多县| 韩城市| 化州市|