在Grails服务的项目中,我想在运行时查找Dynamic Methods的参数以通知调用者。
另外,我喜欢调用该方法,如果不存在则返回错误,
我将不胜感激。
请您参考如下方法:
您可以在grails中配置URLMappings以获得动态方法的值并针对您的对象调用它,例如,您可以执行以下操作
“/ $ object / $ method”( Controller :“api”,操作:“调用”)
import org.codehaus.groovy.grails.commons.ApplicationHolder as AH
class ApiController {
def invoke = {
def object = params.object
def method = params.method
def args
if(object) {
def domainClass = AH.application.domainClasses.find{it.name == method}?.clazz
if(domainClass.metaClass.getStaticMetaMethod(method,args)) {
domainClass.metaClass.invokeStaticMethod(target,input.method,args)
}
}
}
}
在我的示例中,我假设您正在域类上调用静态动态查找器。您可以将其概括为也可以处理实例方法。但是,在加载对象并针对该对象调用方法的请求中,您需要提供更多信息,例如对象ID。
"/$object/$id/$method" (controller:"api",action:"invoke")
-肯




