




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Ofbiz中的中的groovyGroovy是什么?是什么?l一種動態(tài)語言l構(gòu)建于JVM之上l支持面向?qū)ο缶幊蘬可以作為腳本語言Groovy的特性的特性l無縫集成JAVAl動態(tài)類型轉(zhuǎn)換l支持DSL(Domain Specific Languages )l函數(shù)式編程l默認(rèn)導(dǎo)入常用的包 如lang包、util包等l各種語法糖l元編程使用使用groovy的好處的好處l無縫集成所有的java庫,一個Java類可以隨意的調(diào)用groovy類,groovy中也可以任意的調(diào)用java類l語法特性支持,使程序更加簡潔,可讀性更強(qiáng),代碼量也更少使用使用groovy的弊端的弊端l相對于Java,代碼執(zhí)行速度更慢lID
2、E支持不如java舉個例子:快排舉個例子:快排ldef quicksort(List list) if(list.size()2)return list def pivot=listlist.size().intdiv(2) def left=list.grepitpivot return quicksort(left)+mid+quicksort(right)Ofbiz中使用的中使用的groovy的好處的好處l更方便二次開發(fā)l無需一行java代碼l代碼修改后無需編譯,可直接運(yùn)行l(wèi)更少的代碼Ofbiz框架本身集成框架本身集成groovy的方的方式式l在ofbiz框架本身中,采用的方式是把gro
3、ovy作為一種腳本語言,參見 org.ofbiz.service.engine.GroovyBaseScript及org.ofbiz.webapp.event.GroovyEventHandler怎樣在怎樣在ofbiz中使用中使用groovy?在在widget中聲明使用中聲明使用在在controller.xml中聲明使用中聲明使用在在controller.xml中使用注意中使用注意l需在controller.xml文件中配置groovy的事件控制器l在在service.xml中使用中使用在在widget、controller和在和在service中使用中使用groovy的差異的差異l在widg
4、et和Controller中使用groovy基本一致,ofbiz的framework綁定了以下對象到groovy腳本,這些對象可以直接使用 request response session dispatcher delegator security locale timeZone userLogin parametes context (該對象在使用方法的時候不可用)l在service中,可以直接使用的對象有dispatcher、delegator、security、locale timeZone、userLogin、 parametesl在controllerwidgetservice中都可
5、以直接調(diào)用的一些簡單方法 Map runService(String serviceName, Map inputMap) GenericValue findOne(String entityName, Map inputMap) List findList(String entityName, Map inputMap) GenericValue makeValue(String entityName) logInfo(String message) logWarning(String message) logError(String message) success(String mess
6、age) failure(String message) error(String message) 舉例子舉例子我要查詢一個userLoginId為zhny的userLogin首先我可以創(chuàng)建一個UserLoginFinder.groovy的文件在里面我可以直接這樣寫context.user= findOne(“UserLogin”,userLoginId:”zhny”)當(dāng)然,如果要調(diào)用前臺傳過來的參數(shù),可以這樣 context.user= findOne(“UserLogin”,userLoginId:parameters.userId)再舉個例子再舉個例子l如過我要在groovy文件中指定
7、多個event,比如一個userLogin的增刪查改1、首先,創(chuàng)建一個UserLoginEvent.groovy2、在之前說的三種方式中配置文件路徑和調(diào)用方法3、在UserLoginEvent.groovy中編寫多個方法 def userCreate() user=delegator.makeValue(“UserLogin”,userLoginName:,userLoginPassword:parameters.pass); user.create() return success(“success”) def userDelete() try dispatch
8、er.runSync( userDeleteService, userLoginId:parameters.id) catch(Exception e) logError(“delete userLogin faild,reason:”+e.getMessage) 多條件查詢def findUserList() List conditionList = newnew ArrayList() if() conditionList EntityCondition. makeCondition(“userLoginName”,) if()
9、userList=delegator.find(“UserLogin”,conditionList null,null,null,false) request.setAttribute(“userList”,uesrList) return success()Groovy的高級特性使用的高級特性使用l通過上面例子,上面的寫法,實(shí)際上和Java本身沒什么區(qū)別,無非就是一些對象、參數(shù)的綁定啊,groovy的簡單用法l下面講一下元編程在groovy中的用法和好處什么是元編程什么是元編程l在程序運(yùn)行時完成部分本應(yīng)在編譯時完成的工作 l比如運(yùn)行期動態(tài)增加類的方法、修改類的成員域的定義等等Groovy中的
10、元編程中的元編程l兩種方式lExpandoMetaClass和和Category 舉個例子舉個例子l首先我們看多條件查詢剛才的寫法 List conditionList = newnew ArrayList() if() conditionListreturn v?EntityCondition.makeCondition(delegate, EntityOperator.LIKE, %+v+%):null我們這兒就可以這樣寫查詢操作lconditionList return delegator.findList(delegate,EntityCondition.makeCondition(c),f,null,null,false) findOnec-return delegator.findOne(delegate,c,false)ll這樣,我們在查詢列表時可以這樣寫l“UserLogin”.findList(userLoginName:”zhny”,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 地產(chǎn)直播活動方案
- 夏日戶外藝術(shù)活動方案
- 圣誕校慶活動方案
- 大型關(guān)愛活動方案
- 夏季公司創(chuàng)意活動方案
- 夏季鄉(xiāng)村閱讀活動方案
- 東北幼兒園活動方案
- 東莞疫情開學(xué)活動方案
- 個人水上活動方案
- 中專學(xué)生讀書活動方案
- 空壓機(jī)說明書(中文)
- 【基于Python的電商系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)14000字(論文)】
- 錄用體檢操作手冊(試行)
- 農(nóng)民工工資表(模板)
- 各級無塵室塵埃粒子測量表
- 湖北省武漢市江漢區(qū)2022-2023學(xué)年三年級下學(xué)期期末數(shù)學(xué)試卷
- 南充市儀隴縣縣城學(xué)??颊{(diào)教師考試真題2022
- 廣東省廣州市白云區(qū)2022-2023學(xué)年數(shù)學(xué)六年級第二學(xué)期期末質(zhì)量檢測試題含解析
- 《售電公司與電力用戶購售電合同(示范文本)》【通用版】
- 國開液壓氣動技術(shù)專題報(bào)告
- 醫(yī)療設(shè)備、醫(yī)用耗材管理制度培訓(xùn)講座
評論
0/150
提交評論