ofbiz中使用groovy

78 篇文章 6 订阅
49 篇文章 2 订阅

在widget中声明使用


在controller.xml中声明使用(处理事件调用)

  在controller.xml中可以以两种方式使用groovy。指定groovy文件路径,分为可指定方法名或不指定两种方式。

注意:需在controller.xml文件中配置groovy的事件控制器
<handler name="groovy" type="request" class="org.ofbiz.webapp.event.GroovyEventHandler"/>

service.xml中使用

指定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 timeZone、userLogin、 parametes

3.在controller\widget\service中都可以直接调用的一些简单方法
    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 message)
    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文件中指定多个event,比如一个userLogin的增删查改

1、首先,创建一个UserLoginEvent.groovy

2、在之前说的三种方式中配置文件路径和调用方法

3、在UserLoginEvent.groovy中编写多个方法

     def  userCreate(){

             user=delegator.makeValue(“UserLogin”,[userLoginName:parameters.name,userLoginPassword:parameters.pass]);

               user.create()

              

         returnsuccess(“success”) 

  }

     def userDelete(){

             try{

             dispatcher.runSync(" userDeleteService", [userLoginId:parameters.id])

       } catch(Exceptione){

                   logError(“delete userLogin faild,reason:”+e.getMessage)

       }        

     }   

多条件查询
def findUserList(){
   List conditionList = new ArrayList()
   if(parameters.name){
      conditionList <<EntityCondition.                 makeCondition(“userLoginName”,parameters.name) 
   }
   if(){
     ……………
   }
   userList=delegator.find(“UserLogin”,conditionList
                        null,null,null,false)
   request.setAttribute(“userList”,uesrList)
   return success()
}





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值