在widget中声明使用
在controller.xml中声明使用(处理事件调用)
<handler name="groovy" type="request" class="org.ofbiz.webapp.event.GroovyEventHandler"/>
在service.xml中使用
在widget、controller和在service中使用groovy的差异
request
response
session
dispatcher
delegator
security
locale
timeZone
userLogin
parametes
context (该对象在使用方法的时候不可用)
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)
举例子
首先我可以创建一个UserLoginFinder.groovy的文件
在里面我可以直接这样写
context.user= findOne(“UserLogin”,[userLoginId:”zhny”])
当然,如果要调用前台传过来的参数,可以这样
context.user= findOne(“UserLogin”,[userLoginId:parameters.userId])
再举个例子
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()
}