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

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

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

    Struts中的異常處理

    Posted on 2008-01-08 21:31 Norvid 閱讀(228) 評論(0)  編輯  收藏
    本來打算這個blog寫些關于腳本編程的內容,可是最近一直在搞java的開發,而且總被一些平時沒注意的問題“騷擾”。好吧,我承認,是我基礎不扎實……

    比如說這個Struts的異常處理,雖然我是知道能根據異常類的類型來導向相應的頁面的,可是這樣很不好。于是我根據過往的各種經驗將Struts的使用總結為以下形式。

        // execute純粹作為轉發器與異常捕捉與處理
       
    public ActionForward execute(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response) {
            
    try {
                String method 
    = request.getParameter("method");
                
    if (StringUtils.isEmpty(method) || method.equalsIgnoreCase("query")) {
                    
    return query(mapping, form, request, response);
                } 
    else if (method.equalsIgnoreCase("list")) {
                    
    return list(mapping, form, request, response);
                } 
    else if (method.equalsIgnoreCase("info")) {
                    
    return info(mapping, form, request, response);
                } 
    else {
                    
    return query(mapping, form, request, response);
                }
            } 
    catch (Exception error) {
                
    return error(mapping, form, request, response, error);
            }
        }


        
    /**
         * 異常捕獲
         
    */
        
    private ActionForward error(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response,
                Exception error) {
            logger.error(
    "error: " + error.getMessage());
            request.setAttribute(
    "msg", error.getMessage());
            request.setAttribute(
    "error", error);
            
    return mapping.findForward("error");
        }


        
    /**
         * 全部查詢
         
    */
        
    private ActionForward list(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response)
                
    throws Exception {
            
            
           
            
    return mapping.findForward("query");
        }

        

    如上面的代碼所示,action的默認入口只是作為一個轉發器以及異常捕獲點進行相關的異常處理(見error函數)。真正的處理改為由各個功能函數來處理(如list函數)。呵呵,是不是很像DispatchAction類?就是從它想出來的。如果直接使用DispatchAction類的話,每個方法都要自己寫異常處理,太繁瑣了。弄個轉發器只需寫一次就行了。

    呀,有點跑題了。其實我也就想說其實可以使用web.xml的配置來根據不同的http異常來導向不同的頁面……雖然如果注意的話,異常都會在struts的Action層就能完全捕獲住了(屬于開發階段中的JSP錯誤除外)。

    web.xml中配置HTTP異常的方法為:

    <!-- 根據錯誤碼進行跳轉-->
    <error-page>
        
    <error-code>500</error-code>
        
    <location>/error.jsp</location>
    </error-page>



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


    網站導航:
     

    posts - 0, comments - 9, trackbacks - 0, articles - 13

    Copyright © Norvid

    主站蜘蛛池模板: 久久性生大片免费观看性| 亚洲国产精品久久久久婷婷老年| 亚洲成a人片在线网站| 三年片免费高清版| 亚洲伊人久久成综合人影院| 国产亚洲精品免费| 在线免费观看一级毛片| 亚洲成人黄色网址| 美女网站免费福利视频| 久久精品国产亚洲AV久| 四虎永久在线精品免费网址| 蜜桃精品免费久久久久影院| 黄网站色视频免费看无下截| 亚洲AV成人潮喷综合网| 亚洲高清在线观看| 午夜无码A级毛片免费视频 | 久久亚洲AV午夜福利精品一区| 精品一区二区三区免费观看| 国产精品亚洲精品日韩已方| 2022国内精品免费福利视频| 国产V亚洲V天堂无码| 亚洲精品久久无码av片俺去也 | 日韩精品久久久久久免费| 亚洲国产天堂久久综合网站| 日本人的色道免费网站| 亚洲国产精品成人午夜在线观看 | 国产综合免费精品久久久| 亚洲AV日韩AV天堂一区二区三区| 每天更新的免费av片在线观看| 亚洲乱码在线卡一卡二卡新区| 国产精品久久免费视频| 亚洲中文字幕无码av在线| 精品剧情v国产在免费线观看| 无码 免费 国产在线观看91| 亚洲高清在线视频| 午夜网站免费版在线观看| 中国人免费观看高清在线观看二区| 亚洲av网址在线观看| 成人免费淫片在线费观看 | 久久香蕉国产线看免费| 亚洲中文无码亚洲人成影院|