ofbiz中groovy的使用_第1页
ofbiz中groovy的使用_第2页
ofbiz中groovy的使用_第3页
ofbiz中groovy的使用_第4页
ofbiz中groovy的使用_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Ofbiz中的中的groovyGroovy是什么?是什么?l一种动态语言l构建于JVM之上l支持面向对象编程l可以作为脚本语言Groovy的特性的特性l无缝集成JAVAl动态类型转换l支持DSL(Domain Specific Languages )l函数式编程l默认导入常用的包 如lang包、util包等l各种语法糖l元编程使用使用groovy的好处的好处l无缝集成所有的java库,一个Java类可以随意的调用groovy类,groovy中也可以任意的调用java类l语法特性支持,使程序更加简洁,可读性更强,代码量也更少使用使用groovy的弊端的弊端l相对于Java,代码执行速度更慢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更方便二次开发l无需一行java代码l代码修改后无需编译,可直接运行l更少的代码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、以直接调用的一些简单方法 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首先我可以创建一个UserLoginFinder.groovy的文件在里面我可以直接这样写context.user= findOne(“UserLogin”,userLoginId:”zhny”)当然,如果要调用前台传过来的参数,可以这样 context.user= findOne(“UserLogin”,userLoginId:parameters.userId)再举个例子再举个例子l如过我要在groovy文件中指定

7、多个event,比如一个userLogin的增删查改1、首先,创建一个UserLoginEvent.groovy2、在之前说的三种方式中配置文件路径和调用方法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本身没什么区别,无非就是一些对象、参数的绑定啊,groovy的简单用法l下面讲一下元编程在groovy中的用法和好处什么是元编程什么是元编程l在程序运行时完成部分本应在编译时完成的工作 l比如运行期动态增加类的方法、修改类的成员域的定义等等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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论