ofbiz中groovy的使用_第1頁
ofbiz中groovy的使用_第2頁
ofbiz中groovy的使用_第3頁
ofbiz中groovy的使用_第4頁
ofbiz中groovy的使用_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、Ofbiz中的中的groovyGroovy是什么?是什么?l一種動態(tài)語言l構建于JVM之上l支持面向?qū)ο缶幊蘬可以作為腳本語言Groovy的特性的特性l無縫集成JAVAl動態(tài)類型轉(zhuǎn)換l支持DSL(Domain Specific Languages )l函數(shù)式編程l默認導入常用的包 如lang包、util包等l各種語法糖l元編程使用使用groovy的好處的好處l無縫集成所有的java庫,一個Java類可以隨意的調(diào)用groovy類,groovy中也可以任意的調(diào)用java類l語法特性支持,使程序更加簡潔,可讀性更強,代碼量也更少使用使用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代碼修改后無需編譯,可直接運行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”)當然,如果要調(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通過上面例子,上面的寫法,實際上和Java本身沒什么區(qū)別,無非就是一些對象、參數(shù)的綁定啊,groovy的簡單用法l下面講一下元編程在groovy中的用法和好處什么是元編程什么是元編程l在程序運行時完成部分本應在編譯時完成的工作 l比如運行期動態(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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論