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

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

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

    隨筆 - 115  文章 - 481  trackbacks - 0
    <2007年2月>
    28293031123
    45678910
    11121314151617
    18192021222324
    25262728123
    45678910

    常用鏈接

    留言簿(19)

    隨筆檔案(115)

    文章檔案(4)

    新聞檔案(1)

    成員連接

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

      在EasyJWeb對Ajax的支持中,通過引用類似<script type='text/javascript' src='ejf/easyajax/UserService.js'></script>的url可以動態(tài)得到調(diào)用服務(wù)器端業(yè)務(wù)組件的javascript腳本。另外,在基于EasyJWeb的CRUD應(yīng)用中,也可以使用類似http://localhost:8080/user/edit/3的URL來編輯數(shù)據(jù)表中的某一條記錄。究竟EasyJWeb中是如何處理這些URL的呢?本文將作簡單的分析!
      在EasyJWeb中,有一個URL映射處理器,通過配置這個映射處理器可以非常簡單地實現(xiàn)Web應(yīng)用中類似URLRewrite的需求。映射處理器了代碼如下所示:

    public ? interface ?IPathMappingRuler? {
    ?
    // 對請求路徑的解析;
    ? public ?String?getModuleName(); // 得到模板的名稱
    ? public ?Map?getParams();? // 得到模板缺省參數(shù)
    ? public ?String?getCommand(); // 得到模板命令
    }

      該接口的默認實現(xiàn)是com.easyjf.web.core.PathMappingRulerImpl,在基于EasyJWeb的應(yīng)用中,每一個交由EasyJWeb框架處理的請求url,都會通過這個映射處理器進行轉(zhuǎn)換。通過使用EasyJWeb缺省URL映射轉(zhuǎn)換器,客戶端請求路徑/module/command/params將按以下請求規(guī)則,作如下的映射處理.
      映射處理前的URL:
      1、 /module/command/name=xxx
      2、 /module
      3、 /module/command
      4、 /module/command/12345
      5、/module/edit/12345/title=1111
      6、/moduel/title=測試

     映射處理的URL:
      1~? /module.ejf?easyjwebCommand=command&name=xxx
      2~? /module.ejf
      3~? /module.ejf?easyjwebCommand=command
      4~? /module.ejf?easyjwebCommand=command&cid=1234
      5、/module.ejf?easyJWebCommand=edit&cid=123455&title=111
      6、/module.ejf?title=測試


      因此,在一個EasyJWeb自動代碼生成的CRUD應(yīng)用中,http://localhost:8080/user.ejf?easyJWebCommand=edit&cid=3 這個URL表示編輯user對象中屬性cid為3的信息。使用默認的映射處理規(guī)則,上面的url可以變成如下的形式:

      http://localhost:8080/user/edit/3

      這個url表示運行user.ejf這個模塊,傳送的命令為edit,標(biāo)準(zhǔn)key值為3。


      URL映射轉(zhuǎn)換器的一個最典型的應(yīng)用示例,就是EasyJWeb-0.8版本開始增加的遠程Web腳本處理支持引擎,也即Ajax的部分功能。遠程JS腳本調(diào)用支持只是EasyJWeb中的一個小小插件,EasyJWeb的Ajax實現(xiàn)只是一個普通的EasyJWeb Module(Action)。這個Action即com.easyjf.web.ajax.AjaxEngineAction。

      看過本人《在EasyJWeb中輕松開發(fā)Ajax運用》一文的朋友都知道,遠程Web腳本調(diào)用涉及到一個如何生成調(diào)用服務(wù)器端方法的Javascript Stub問題。在EasyJWeb對Ajax的支持中,可以直接通過下面的URL來生成遠程javascript調(diào)用腳本。

    < script? type ='text/javascript'? src ="ejf/easyajax/prototype.js" ></ script >
    < script? type ='text/javascript'? src ='ejf/easyajax/engine.js' ></ script > ?
    < script? type ='text/javascript'? src ='ejf/easyajax/UserService.js' ></ script >

      第一句返回prototype.js腳本,第二句返回EasyJWeb的Ajax支持引擎engine.js腳本,第三句返回生成服務(wù)器UserService組件的遠程調(diào)用腳本。
      上面的URL,改成通過原生的EasyJWeb URL來引用,可以寫成下面的形式:

    < script? type ='text/javascript'? src ="easyajax.ejf?easyJWebCommand=prototype.js" ></ script >
    < script? type ='text/javascript'? src ='easyajax.ejf?engine.js' ></ script > ?
    < script? type ='text/javascript'? src ='easyajax.ejf?easyJWebCommand=UserService' ></ script >

      AjaxEngineAction中處理這幾個調(diào)用代碼如下:

    public ?Page?doEngine(WebForm?form,?Module?module)? throws ?Exception? {
    ??
    return ?module.findPage( " engine-js " );
    ?}


    public ?Page?doPrototype(WebForm?form,?Module?module)? throws ?Exception? {
    ??
    return ?module.findPage( " prototype " );
    ?}
     

    public ?Page?doAjaxHome(WebForm?form,?Module?module)? throws ?Exception? {
    ??String?command?
    = ?CommUtil.null2String(form.get( " easyJWebCommand " ));
    ??
    if ?(command.endsWith( " .js " ))
    ??
    {
    ???command?
    = ?command.substring( 0 ,?command.length()? - ? 3 );
    ??}

    ??Object?bean
    = AjaxUtil.getServiceContainer().getService(command);??
    ??
    // System.out.println(command);
    ??form.addResult( " scriptName " ,?command);
    ??form.addResult(
    " methodList " ,?AjaxUtil.getAjaxStub(bean));
    ??
    return ?module.findPage( " stub " );
    ?}


    小結(jié):
      一個簡單適用的Web MVC框架,不僅僅是實現(xiàn)單純的頁面及代碼分離功能,還應(yīng)該提供更多的與Web應(yīng)用相關(guān)的實用工具及解決通用應(yīng)用需求抽象功能。在EasyJWeb中,除擁有了很多MVC框架的基本特性以外,還內(nèi)置了很多解決應(yīng)用Web應(yīng)用程序中一些通過需求的工具,比如URL映射處理、自動代碼生成、權(quán)限系統(tǒng)支持等,因此會使得我們開發(fā)Web應(yīng)用程序開發(fā)變得更加簡單、高效。作為一個完全由國內(nèi)Java開源愛好者發(fā)起及實現(xiàn)的Web MCX框架,雖然在EasyJWeb-0.8版本中還存在著很多問題,但只要有更多的開源愛好者參與到其中來,相信在以后的版本中會不斷得到完善。

    (本文作者:EasyJF開源??大峽 歡迎轉(zhuǎn)載,轉(zhuǎn)載請保留作者聲明,謝謝!)

    posted on 2007-02-10 18:49 簡易java框架 閱讀(1180) 評論(0)  編輯  收藏

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久精品国产亚洲av成人| 国产jizzjizz视频全部免费| 亚洲Av熟妇高潮30p| 在线观看黄片免费入口不卡| 亚洲日韩欧洲乱码AV夜夜摸| 免费在线黄色电影| 亚洲成AV人片在线观看| 99re免费在线视频| 亚洲小说图片视频| 免费无码AV片在线观看软件| 亚洲国产AV一区二区三区四区| 四虎成人免费观看在线网址| 国产成人高清亚洲一区91| 一本色道久久88综合亚洲精品高清| 四虎影视永久在线精品免费| 中文字幕日韩亚洲| 无码AV片在线观看免费| 亚洲理论精品午夜电影| 最新中文字幕免费视频| 色网站在线免费观看| 久久亚洲国产精品123区| 久久久精品午夜免费不卡| 亚洲精品福利网泷泽萝拉| 无码一区二区三区免费视频 | 亚洲产国偷V产偷V自拍色戒| 午夜老司机永久免费看片| 亚洲最大成人网色香蕉| 在线观看免费亚洲| 国产一区二区免费视频| 2017亚洲男人天堂一| 国产精品视频免费一区二区三区| 国产精品成人69XXX免费视频| 亚洲最新永久在线观看| 成人免费看吃奶视频网站| 一个人看的免费高清视频日本| 亚洲无线电影官网| 国产成人精品免费直播| 99re6在线视频精品免费下载| 亚洲欧美日韩中文二区| 亚洲AV日韩AV天堂一区二区三区| 妞干网免费视频观看|