ofbiz中使用groovy

在widget中声明使用

ofbiz中使用groovy_第1张图片

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

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

注意:需在controller.xml文件中配置groovy的事件控制器

service.xml中使用

指定groovy文件路径,可不指定方法名
ofbiz中使用groovy_第2张图片

在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 <    }
   if(){
     ……………
   }
   userList=delegator.find(“UserLogin”,conditionList
                        null,null,null,false)
   request.setAttribute(“userList”,uesrList)
   return success()
}





你可能感兴趣的:(ofbiz,总结,groovy,ofbiz学习)