Ofbiz中的.groovy文件
一、Ofbiz项目中的.groovy文件,架构如下:
(注:图中actions文件夹下的各个文件夹中,都是.groovy文件)
二、Groovy是什么?
1、一种动态语言
2、构建于JVM上
3、支持面向对象编程
4、可以作为脚本语言
三、Ofbiz本身集成Groovy的方式?
在ofbiz框架本身中,采用的方式是霸groovy作为一种脚本语言。
(参见:org.ofbiz.service.engine.GroovyBaseScript、org.ofbiz.webapp.event.GroovyEventHandler)
四、在Ofbiz中,如何使用Groovy?
1、在widget中声明使用
2、在controller.xml中使用,需要在controller.xml文件中配置groovy的事件控制器
<handler name="groovy" type="request" class="org.ofbiz.webapp.event.GroovyEventHandler">
两种方式:
1).指定它的路径
2).指定方法名或不指定
3、在service.xml中使用
1).指定groovy文件路径,可不指定方法名
五、在widget、controller和service中使用groovy的区别?
1).widget和Controller中使用groovy基本一致。Ofbiz的framework绑定了以下对象到groovy脚本。
对象:request、response、session、dispatcher、delegator、security、locale、timeZone、userLogin、parametes、context(该对象在使用方法的时候不可用)
2).service中,可以直接使用的对象有dispatcher、delegator、security、locale
3).都可以调用的方法:
六、举例说明
1、查询一个userLoginId为liuc的userLogin。
创建一个UserLoginFinder.groovy的文件。
文件里直接写contxet.user=fingOne("UserLogin",[userLoginId:"liuc"])
若从页面传过来的值,则contxet.user=fingOne("UserLogin",[userLoginId:parameters.UserId])
2、再举个例子
七、扩展
在Ofbiz中,我们可以针对原有的API,些更多的扩展,这样可以减少代码量。甚至可以写一个dsl解释器,在页面中写groovy的 业务逻辑,拿到后台执行。