在EasyJWeb對Ajax的支持中,通過引用類似

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

EasyJWeb中缺省URL映射轉換器揭密

系統 2724 0
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>

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

public interface IPathMappingRuler ... {
// 對請求路徑的解析;
public StringgetModuleName(); // 得到模板的名稱
public MapgetParams(); // 得到模板缺省參數
public StringgetCommand(); // 得到模板命令
}

  該接口的默認實現是com.easyjf.web.core.PathMappingRulerImpl,在基于EasyJWeb的應用中,每一個交由EasyJWeb框架處理的請求url,都會通過這個映射處理器進行轉換。通過使用EasyJWeb缺省URL映射轉換器,客戶端請求路徑/module/command/params將按以下請求規則,作如下的映射處理.
  映射處理前的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應用中, http://localhost:8080/user.ejf?easyJWebCommand=edit&cid=3  這個URL表示編輯user對象中屬性cid為3的信息。使用默認的映射處理規則,上面的url可以變成如下的形式:

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

  這個url表示運行user.ejf這個模塊,傳送的命令為edit,標準key值為3。


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

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

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腳本,第三句返回生成服務器UserService組件的遠程調用腳本。
  上面的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中處理這幾個調用代碼如下:

public PagedoEngine(WebFormform,Modulemodule) throws Exception ... {
return module.findPage( " engine-js " );
}


public PagedoPrototype(WebFormform,Modulemodule) throws Exception ... {
return module.findPage( " prototype " );
}


public PagedoAjaxHome(WebFormform,Modulemodule) throws Exception ... {
Stringcommand
= CommUtil.null2String(form.get( " easyJWebCommand " ));
if (command.endsWith( " .js " ))
... {
command
= command.substring( 0 ,command.length() - 3 );
}

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


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

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




EasyJWeb中缺省URL映射轉換器揭密


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲国产精品第一区二区三区 | 久久精品国产2020观看福利色 | 九九热这里只有国产精品 | 国产啪视频1000部免费视频 | 青草免费免费观看视频在线 | 亚洲欧美中日韩 | 欧美深夜在线 | 亚洲欧美另类国产综合 | 毛片免费观看的视频 | 夜夜操天天爽 | 天天射天天操天天干 | 久久91精品牛牛 | 国产一二三区在线观看 | 日韩爱爱视频 | 午夜看一级特黄a大片 | 久草狼人| 99视频精品免费99在线 | 91久久爱 | 狠狠干狠狠色 | 亚洲狠狠婷婷综合久久久久 | 四虎成人免费视频 | 国产香蕉在线观看 | 日韩国产成人资源精品视频 | 国产边打电话边被躁视频 | 成人免费视频国产 | 狠狠色噜噜狠狠狠狠奇米777 | 五月天婷婷激情 | 伊人色综合琪琪久久社区 | 91手机在线视频观看 | 狠狠色丁香婷婷久久综合2021 | 国产日韩欧美综合一区 | 伊香蕉大综综综合久久 | 国产精品揄拍一区二区久久 | 久久精品无码一区二区日韩av | 免费观看一级特黄欧美大片 | 爱爱小视频免费 | a毛片免费播放全部完整 | 久久久久女人精品毛片九一 | 国产自产视频在线观看香蕉 | 一级淫片免费视频 | 天天爽夜夜爽人人爽 |