Grails提供在控制器之前运行的filters。他们在像这样的类定义:Grails过滤器语法或者如何在Grails外调用Grails过滤器
class SecurityFilters {
def filters = {
myFilter(controller:'*', action:'*') { // What are those weird colons??
print "I'm filtering!"
// Code that does the filtering goes here
}
}
}
这些工作的伟大,但我想明白语法更好,因为它看起来并不像任何Groovy代码我以前见过。特别是,上面以myFilter
开头的行似乎很奇怪。这是一种称为myFilter
的方法的方法定义吗?如果是这样,每个参数后:'*'
是什么意思?我认为这可能是一个默认的参数值,但那将是='*'
。我已经在方法调用之前看到使用冒号命名的参数,但是这不可能是方法调用,因为我没有在其他地方定义myFilter()
。
我想我会理解的要好得多,如果有人能告诉我如何从一个正常的Groovy类执行过滤代码。换句话说,如果我有一个包含上面几行的文件MyFilters.groovy,我该如何完成这个Groovy代码,以便打印出“我正在过滤”?
import MyFilters
def mf = new MyFilters()
mf.filters.somethingGoesHere // Help! How do I finish this line so it calls my filtering code?
好问题松鼠!我刚刚一直在与同样的问题作斗争 - 感谢您提出这个问题! – alpian 2010-09-24 16:50:49
我需要知道相同的东西....我几乎睡不着,哈哈! – Topera 2011-05-30 10:40:25