我正在尝试将Grails 2控制器过滤器转换为Grails 3拦截器。拦截器是Grails插件。 Grails 3升级完成,当我将代码复制并粘贴到应用程序中(只是为了验证它是否有效),然后我看到拦截器的输出。
但是,如果我尝试通过插件将该代码引入应用程序,则拦截器不会运行。我可以验证插件是否正在拉动;当我点击某个动作时,它的拦截器就不被调用了。
例如,如果插件是:
// If added to app directly, works fine. As plugin, not invoked.
class SimpleInterceptor {
SimpleInterceptor() {
matchAll()
}
boolean before() {
println 'test' // Does not print if using plugin
}
}
控制器是一个简单的动作:
def index() {
render 'success'
}
我是否需要以某种方式注册它以使拦截器能够在应用程序上运行?我错过了一步吗?
答案 0 :(得分:0)
感谢@vahid指出一个做类似事情的回购。事实证明,当我升级插件的*Plugin.groovy
文件时,我遇到的问题是,我没有延长grails.plugins.Plugin
。请务必这样做,否则应用可能无法获取插件。