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

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

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

    好·色之徒
    已經轉移到 好·色之徒--我的博客、我的生活

    在上一篇文章中談論了有關MVC中C的部分,這里開始說明如何搭建M的部分,這里的M,不當當是簡單的數據模型,更多的涉及到了業務邏輯的成分。
    上一篇中的UctServlet類實現了控制,提到了用于控制流程的數據庫中有一個字段alink(值為HAAap),里面的內容就是現在要講解的部分。 從UctServlet,到交由具體某個類來實現業務邏輯,HAAap就是這樣一個類,不需要繼承特殊的框架體系,完全有自己開發。這里需要明確一點,為了整個應用體系的相對完整性,可以設計一個共通M類(比如這里的UctApSuper),主要負責一些共通的業務和資源。HAAap繼承于它。

    結合UctServlet類的核心邏輯(可參考不借助任何web框架結構,構建自己的MVC應用程序(1)部分),會通過反射機制首先調用某M類(HAAap)的apexec方法。所以對共通M類(UctApSuper)有這樣的設計:
    public UctApSuper() {
    DBA = new uct.UctDBIO(); //數據源設定
    sUser = new uct.UctUser(); //UctUser
    psApName = UctUser.getApName();
    }

    public void apexec(HttpServletRequest preq, HttpServletResponse pres,
    HttpSession phtss) throws IOException, ServletException {
    try {
    this.req = preq;
    this.res = pres;
    this.uses = phtss;

    uhData = this.getPVal(); // Window畫面所有的key-value值對,uhData是Hashtable

    res.setContentType("text/html");
    } catch (Throwable e) {
    System.out.println("ApSuper.apexec Throwable = " + e);
    this.errPage(req, res, psApName, "ApSuper.apexec :ERROR=" + e);
    }
    }
    設置了一些共通需要的資源
    除了上面的以外,在UctApSuper類中還有比如:apfCallJsp(成功后調用jsp資源)、errPage(失敗后調用錯誤資源)等等共通的處理,具體的實現方式以后源碼下載中會提供。

    下面描述一下具體的M類(HAAap),它繼承于UctApSuper類,給出一些代碼片斷:
    public class HAAap extends UctApSuper {
    //定義一些畫面(通常一個M類會管理從List-input-confirm畫面的過程)
    private String psListJSP = "HAA/H01010";
    private String psInputJSP = "HAA/H01020";
    private String psConfirmJSP = "HAA/H01030";
    public HAAap() {
    }
    這里我再列出上一篇文章中提到的控制流程的數據表
    alink atype window_id action_id
    HAAap BEAN WIN_HGA HAA ----年度計劃畫面 初始的一種狀態
    HAAap BEAN WIN_HGA SRDT ----SRDT表示年度計劃畫面上的檢索功能
    HAAap BEAN WIN_HGA DTIL ----DTIL表示年度計劃畫面上的詳細畫面功能
    /**
    * 按照畫面url上的 ?Window=WINHGA&Action=HAA,來判斷應該進入那一邏輯部分
    */
    public void apexec(HttpServletRequest preq, HttpServletResponse pres, HttpSession phtss) {
    try {
    //UctApSuper類的apexec方法,設置共通資源
    super.apexec(preq, pres, phtss);
    //取得參數Action值,以確認進入那一邏輯部分
    sEventType = getPVal("Action");
    apinit(); // 該M的一般初始化處理

    //判斷進入那一邏輯部分
    if (sEventType.equalsIgnoreCase("HAA")) {
    apmInit(); // 初始畫面
    } else if (sEventType.equalsIgnoreCase("RINS")) {
    apmNew(); // 新增加畫面
    } else if (sEventType.equalsIgnoreCase("DTIL")) {
    apmDetails(); // 詳細畫面
    } else {
    this.apfFwkErr(sEventType);
    }

    //共通結束處理
    apexit();
    } catch (Exception e) {
    errPage(req, res, "apexec", e); // ERROR
    } finally {

    }
    }

    下面依次是apinit();apmInit();apmNew(); ......等的具體處理內容,舉一例:
    private void apmDetails() {
    try {
    ...業務邏輯
    apfCallJsp(psInputJSP); // 調用JSP資源
    } catch (Exception e) {
    errPage(req, res, "apmDetails", e); // ERROR
    } finally {

    }
    }
    }

    這些就是M類的處理過程,代碼作了相應修改

    不借助任何web框架結構,構建自己的MVC應用程序(3)?? 有個論壇

    Feedback

    # re: 不借助任何web框架結構,構建自己的MVC應用程序(3)  回復  更多評論   

    2006-11-02 14:12 by fef
    你是否才華橫溢而無奈沒有滿意的工作,

    沒關系,全球最大最早的網上軟件工廠已經騰空出世了!

    即可注冊米鼠網會員,就可兼職,做項目,賺大錢。
    大家,推廣米鼠6,8群。米鼠6,8群32141736,32141620


    # re: 不借助任何web框架結構,構建自己的MVC應用程序(3)  回復  更多評論   

    2006-11-02 14:13 by fef
    你是否經驗不足而求職碰壁。

    沒關系,全球最大最早的網上軟件工廠已經騰空出世了!

    即可注冊米鼠網會員,就可兼職,做項目,賺大錢。
    大家,推廣米鼠6,8群。米鼠6,8群32141736,32141620

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


    網站導航:
     

    posts - 39, comments - 91, trackbacks - 0, articles - 1

    Copyright © 城市劣人

    好·色之徒
    主站蜘蛛池模板: 亚洲av乱码一区二区三区按摩| 午夜亚洲WWW湿好爽| 四虎永久在线精品免费一区二区| 91精品全国免费观看青青| 特级做A爰片毛片免费69| 国产亚洲AV夜间福利香蕉149| 亚洲国产理论片在线播放| 免费无遮挡无码视频在线观看 | 91大神在线免费观看| 免费黄色小视频网站| 婷婷亚洲综合五月天小说| 欧美亚洲国产SUV| 免费A级毛片无码久久版| 亚洲人成人网毛片在线播放| 久久99青青精品免费观看| 久久久久噜噜噜亚洲熟女综合| 亚洲人成电影网站色| 无码精品A∨在线观看免费| 亚洲VA中文字幕无码一二三区| 麻豆va在线精品免费播放 | 国产啪精品视频网免费| 亚洲熟妇无码AV不卡在线播放 | 色窝窝免费一区二区三区| 亚洲欧洲AV无码专区| 亚洲精品美女久久久久99小说| 亚洲妇女无套内射精| 国产大片91精品免费观看不卡| 男人的天堂亚洲一区二区三区| 亚洲专区先锋影音| 亚洲视频免费在线观看| 国产精品亚洲专区在线观看| AV无码免费永久在线观看| 校园亚洲春色另类小说合集| 日本高清免费网站| 国产91成人精品亚洲精品| 国产jizzjizz免费看jizz| 色妞www精品视频免费看| 亚洲av色福利天堂| 成**人免费一级毛片| 亚洲av最新在线观看网址| 国产亚洲成人久久|