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

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

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

    隨筆-40  評(píng)論-66  文章-0  trackbacks-0
    和女主角Action 對(duì)象共舞

    什么是Action?
    和常規(guī)的web 應(yīng)用相比,Struts Action 類(lèi)工作起來(lái)就象一個(gè)小型的servlet。在大多數(shù)Java
    應(yīng)用中,諸如訪問(wèn)業(yè)務(wù)層的任務(wù)、錯(cuò)誤處理等任務(wù)均是由servlet 承擔(dān)的。在一個(gè) Struts 應(yīng)
    用中,servlet 扮演著一個(gè)分派器的角色。而Action 對(duì)象則干實(shí)際的工作。象 servlets 一樣,
    Action 對(duì)象是多線程的。每個(gè)應(yīng)用只需要一個(gè)Action 類(lèi)的實(shí)例。

    Action做些什么?

    一個(gè)典型的Action 的職責(zé)通常是:

    ?? ■校驗(yàn)前提條件或者聲明
    ?? ■調(diào)用需要的業(yè)務(wù)邏輯方法
    ?? ■檢測(cè)其它處理錯(cuò)誤
    ?? ■將控制路由到相關(guān)視圖


    檢驗(yàn)輸入: Action 需要做的就是確認(rèn)ActionForm 是否是需要的類(lèi)型。

    調(diào)用邏輯業(yè)務(wù):

    Action 類(lèi)是HTTP 與應(yīng)用系統(tǒng)中其它部分之間的適配器。最重要的是要避免將業(yè)務(wù)邏輯放入
    Action 之中。Action 類(lèi)應(yīng)該只是簡(jiǎn)單地收集業(yè)務(wù)方法需要的數(shù)據(jù)并傳遞它到具體的業(yè)務(wù)對(duì)
    象。如果你同時(shí)在編寫(xiě)業(yè)務(wù)類(lèi)和Action 類(lèi),可能會(huì)受到要將它們編寫(xiě)在一起的誘惑。一定
    要抵擋這種誘惑,并且將業(yè)務(wù)方法放入Action 可調(diào)用的單獨(dú)的類(lèi)之中。Java 虛擬機(jī)(JVM)
    針對(duì)這種方法調(diào)用作了優(yōu)化;性能損失可以忽略不計(jì)。
    同時(shí)你也得到了一些設(shè)計(jì)上的優(yōu)勢(shì)

    Action檢測(cè)錯(cuò)誤:
    Struts具有一個(gè)設(shè)計(jì)良好的錯(cuò)誤處理系統(tǒng),允許你可以:
    ??■ 同時(shí)截獲幾個(gè)錯(cuò)誤
    ??■ 在請(qǐng)求中傳遞錯(cuò)誤數(shù)據(jù)包
    ??■ 顯示本地化信息

    這個(gè)處理流程涉及到兩個(gè)對(duì)象 (ActionErrors 和 ActionError) 和一個(gè)注冊(cè)錯(cuò)誤的工
    具方法(saveErrors) 。其它兩個(gè)對(duì)象 (MessageResources 和 一個(gè)定制標(biāo)簽)則用來(lái)顯
    示錯(cuò)誤信息

    注冊(cè)錯(cuò)誤
    總體流程歸結(jié)為:
    ??1 創(chuàng)建一個(gè)空的ActionErrors 實(shí)例
    ??2 在錯(cuò)誤發(fā)生時(shí),為錯(cuò)誤信息添加關(guān)鍵字;
    ??3 檢查是否添加了某些信息
    ??4 保存ActionErrors 集合對(duì)象到請(qǐng)求中
    ??5 ?轉(zhuǎn)發(fā)控制到錯(cuò)誤頁(yè)面以顯示信息
    ??6? 否則,正常繼續(xù)

    例如
    ActionErrors?errors?=?new?ActionErrors();
    try?{
    //?*?調(diào)用業(yè)務(wù)對(duì)象?*
    }

    catch?(ModelException?e)?{
    errors.add(ActionErrors.GLOBAL_ERROR,
    new?ActionError("error.detail",e.getMessage()));
    }

    if?(!errors.empty())?{
    saveErrors(Request,?errors);
    return?(mapping.findForward("error"));
    }

    //?*?正常繼續(xù)?*

    posted on 2006-12-14 10:32 Super·shen BLOG 閱讀(422) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): JAVA技術(shù)
    主站蜘蛛池模板: 亚洲人成网站18禁止| 国产亚洲av人片在线观看| 亚洲av乱码一区二区三区按摩 | 亚洲jizzjizz少妇| 日韩精品人妻系列无码专区免费 | 欧洲亚洲综合一区二区三区| 久久精品国产精品亚洲下载| 免费大片av手机看片| 亚洲AV无码专区国产乱码4SE| 在线观看免费人成视频色| 一个人看的www视频免费在线观看| 国产不卡免费视频| 日韩免费观看一区| 亚洲大片免费观看| 亚洲片国产一区一级在线观看| 91精品啪在线观看国产线免费| 高潮毛片无遮挡高清免费视频| 麻豆亚洲AV永久无码精品久久| 国产h视频在线观看网站免费| 日本激情猛烈在线看免费观看| 亚洲视频在线一区二区三区| 国产va免费精品观看精品| 72pao国产成视频永久免费| 在线aⅴ亚洲中文字幕| 亚洲精品高清国产一线久久| 在线播放免费人成毛片乱码| 久久亚洲中文字幕无码| 1区1区3区4区产品亚洲| 伊人婷婷综合缴情亚洲五月| 日本无吗免费一二区| 久久国产精品免费一区| 亚洲人成网亚洲欧洲无码| 亚洲在成人网在线看| 亚洲AV永久无码精品成人| 亚洲国产婷婷香蕉久久久久久| 久久精品免费全国观看国产| 日韩人妻无码精品久久免费一| 9i9精品国产免费久久| 特级做a爰片毛片免费看| 亚洲色少妇熟女11p| 亚洲国产日韩在线|