版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年潞安化工集团有限公司校园招聘笔试备考试题及答案解析
- 2026浙江事业单位统考衢州市柯城区招聘42人考试参考题库及答案解析
- 2026年云南省城市建设投资集团有限公司校园招聘考试备考题库及答案解析
- 2026年绍兴市原水集团有限公司校园招聘笔试模拟试题及答案解析
- 2026年联通视频科技有限公司校园招聘笔试参考题库及答案解析
- 2026年山东省鲁信投资控股集团有限公司校园招聘笔试备考试题及答案解析
- 2026湖南岳阳市云溪区“四海揽才”教师人才校园招聘13人备考题库含完整答案详解【历年真题】
- 2026贵州贵阳观山湖区铭廷小学语文教师招聘备考题库(能力提升)附答案详解
- 2026年贵阳盐业集团有限责任公司校园招聘笔试参考题库及答案解析
- 2026江苏盐城市滨海县校园招聘教师76人备考题库(含答案详解)
- 2026中国石化云南石油分公司加能站后备站经理招聘100人笔试备考试题及答案解析
- 部编版道德与法治三年级下册第四课《致敬劳动者》第二课时 课件
- 湖北省武汉市2026届高三下学期三月调研考试 数学试卷 含答案
- 2026四川西南民族大学招聘教学管理岗人员15人笔试参考题库及答案解析
- 飞机结构与机械系统课件 供油系统
- 2《烛之武退秦师》剧本杀教学课件 2025-2026学年 统编版高中语文 必修下册
- 2026年安徽工贸职业技术学院单招职业技能测试题库附参考答案详解(模拟题)
- 2025年北极航行指南
- 2025年江西科技职业学院单招综合素质考试试题及答案解析
- 2025年上饶职业技术学院单招职业技能考试试题及答案解析
- 发热待查诊治专家共识(2026 版)
评论
0/150
提交评论