<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 © 城市劣人

    好·色之徒
    主站蜘蛛池模板: 99视频全部免费精品全部四虎| 国产精品免费久久久久电影网| 久久国产精品成人免费| 最新精品亚洲成a人在线观看| 小说区亚洲自拍另类| 在线免费观看国产视频| 久久精品国产亚洲AV天海翼| 日本xxwwxxww在线视频免费| 日韩国产精品亚洲а∨天堂免| 在线看片无码永久免费aⅴ| 特a级免费高清黄色片 | WWW国产亚洲精品久久麻豆| 日韩在线免费看网站| 边摸边脱吃奶边高潮视频免费| 亚洲精品视频免费| 国产成人无码免费看片软件| 亚洲日韩小电影在线观看| 99精品在线免费观看| 亚洲videosbestsex日本| 免费无码成人AV片在线在线播放| 日本精品久久久久久久久免费 | 亚洲无码精品浪潮| 精品国产免费一区二区三区香蕉| 午夜影视日本亚洲欧洲精品一区| 亚州免费一级毛片| 亚洲AV无码一区二区大桥未久| 免费人妻无码不卡中文字幕18禁| caoporm碰最新免费公开视频| 亚洲人成在线电影| 免费激情视频网站| 国产精品偷伦视频免费观看了| 精品亚洲成a人片在线观看少妇 | 女人18毛片水真多免费看| 色噜噜狠狠色综合免费视频| 国产精品亚洲片在线观看不卡| 免费看美女裸露无档网站| 爱情岛论坛免费视频| 亚洲天堂视频在线观看| 日韩精品无码人妻免费视频| a级成人毛片免费视频高清| 亚洲av一本岛在线播放|