<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-124  評論-49  文章-56  trackbacks-0

    1 自定義異常類 SystemException.java

    public class SystemException extends RuntimeException{
     //自定義key
     private String key;
     //自定義參數
     private Object[] values;

     //實現父類的構造方法
     public SystemException() {
      super();
     }

     public SystemException(String message, Throwable cause) {
      super(message, cause);
     }


     public SystemException(String message) {
      super(message);
     }


     public SystemException(Throwable cause) {
      super(cause);
     }

     //自定義構造方法
     public SystemException(String message, String key) {
      super(message);
      this.key=key;
     }

     //自定義構造方法,帶一個參數
     public SystemException(String message, String key,Object value) {
      super(message);
      this.key=key;
      this.values=new Object[]{value};
     }
     
     //自定義構造方法,帶多個參數
     public SystemException(String message, String key,Object[] values) {
      super(message);
      this.key=key;
      this.values=values;
     }
     
     //相應的get方法
     public String getKey() {
      return key;
     }

     public Object[] getValues() {
      return values;
     }
    }
    2 自定義異常處理器 SystemExceptionHandler.java

    //作用:截獲SystemException,并根據SystemException中的信息動態創建ActionMessage等這些錯誤信息,
            將其存在request中
    public class SystemExceptionHandler extends ExceptionHandler{

     /**
      * 處理SystemException異常
      */
     @Override
     public ActionForward execute(Exception ex,//拋出的異常
             ExceptionConfig config,//struts-config.xml中的配置信息
             ActionMapping mapping,
              ActionForm form,
             HttpServletRequest request,
             HttpServletResponse response) throws ServletException {
      
      ActionForward forward=null;
      //創建ActionForward
      if(config.getPath()!=null){
       //有path屬性,則根據path創建
       forward=new ActionForward(config.getPath());
      }else {
       //沒有path屬性,則根據input屬性創建
       forward=mapping.getInputForward();
      }
      if(ex instanceof SystemException){
       SystemException se=(SystemException)ex;
       //key可有可無,所以取出key進行判斷
       String key=se.getKey();
       ActionMessage error=null;
       //如果自定義的key為空,用struts的
       if(key==null){
        //拿出error.default和message,創建ActionMessage對象
        error=new ActionMessage(config.getKey(),se.getMessage());
       }else {
        //如果自定義的key有值
        if(se.getValues()!=null){
         error=new ActionMessage(key,se.getValues());
        }else {
         //如果自定義的key有值,則根據key創建ActionMessage對象
         error=new ActionMessage(key);
        }
       }
       //將這個ActionMessage放到request中。key為自定義的,error為ActionMessage對象
       //forward是要轉到什么地方,根據path屬性創建。"request"為scope的一個,也可以
       //用config.getScope()
       this.storeException(request, key, error, forward, config.getScope());
       return forward;
      }
      return super.execute(ex, config, mapping, form, request, response);
     }
    }


    3 編寫配置文件 struts-config.xml

    <global-exceptions>
       <exception key="error.default"
            type="java.lang.Exception"
            scope="request"
            path="/common/exception.jsp"
        <!-- 自定義的異常處理類 -->
            handler="org.oa.common.SystemExceptionHandler"/>
    </global-exceptions>

    4 編寫資源文件 ApplicationResources.properties

    error.default={0}
    error.org.del=Can't Del Orgnation,id is {0}!

    5 業務代碼

    throw new org.oa.common.SystemException("存在子機構,不允許刪除!","error.org.del",org.getOname());

    posted on 2009-11-30 08:17 junly 閱讀(500) 評論(0)  編輯  收藏 所屬分類: struts2/struts1.3/JSF
    主站蜘蛛池模板: 中文字幕无码精品亚洲资源网| 精品久久久久久久免费加勒比| 亚洲中文无码永久免| 亚洲男人天堂2022| www.黄色免费网站| 91在线视频免费观看| 亚洲精华国产精华精华液网站| 最近最新中文字幕完整版免费高清 | 青青久久精品国产免费看| www在线观看免费视频| 久久国产免费观看精品3| 日本一区免费电影| 亚洲三区在线观看无套内射| 亚洲国产精品成人精品小说| 暖暖免费中文在线日本 | 亚洲人AV永久一区二区三区久久| 亚洲av无码成h人动漫无遮挡| 亚洲国产人成在线观看| 五月天婷婷精品免费视频| 日韩免费精品视频| 亚洲av网址在线观看| 特级av毛片免费观看| 嫩草视频在线免费观看| 亚洲国产精品综合福利专区| 永久免费AV无码国产网站| 日韩国产欧美亚洲v片 | 人妻免费久久久久久久了| 亚洲男人的天堂www| 2019中文字幕免费电影在线播放| 久久精品国产亚洲Aⅴ香蕉| 香蕉免费一区二区三区| 久久精品亚洲乱码伦伦中文| 国产一区二区免费| 亚洲中文字幕无码一区| jizz中国免费| 免费国产综合视频在线看| 亚洲一级片在线播放| 91精品国产免费久久国语蜜臀| 亚洲精品无码av中文字幕| 99视频在线精品免费| 久久精品国产亚洲av麻|