我写了一个插件来将一个方法注入所有控制器,我写了这个 doWithDynamicMethod {ctx -> }
for (classes in org.codehaus.groovy.grails.commons.ApplicationHolder.application.controllerClasses){
def controllerClass = classes.clazz
controllerClass.metaClass.static.doTestSearch << {args ->
println "this is dynamic insertion -->"+args.toString()
}
classes.class.metaClass.doTestSearch << {args ->
println "this is dynamic insertion -->"+args.toString()
}
}
当我尝试在视图中调用此方法时,通过:
<g:form method="POST">
<g:actionSubmit class="save" action="doTestSearch"
value="${message(code: 'default.button.search.label', default: 'Search')}" />
该方法未调用并返回 404 错误。
但是当我试图从控制器调用它时:
doTestSearch(params)
有用。
有人可以解释为什么会这样吗?我可以直接从视图中调用动态方法吗?
先感谢您