Я написал плагин для внедрения метода во все контроллеры, я написал это на 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)
Работает.
Может кто-нибудь объяснить, почему это происходит? И можно ли вызвать динамический метод непосредственно из вида?
Заранее спасибо