Składnia filtru Grails, lub, jak nazwać Grails Filtr poza Grails
Grails zapewniafiltry które działają przed twoimi kontrolerami. Są zdefiniowane w klasach, które wyglądają tak:
class SecurityFilters {
def filters = {
myFilter(controller:'*', action:'*') { // What are those weird colons??
print "I'm filtering!"
// Code that does the filtering goes here
}
}
}
Działają świetnie, ale chciałbym lepiej zrozumieć składnię, ponieważ nie wygląda to na żaden kod Groovy, który widziałem wcześniej. W szczególności linia powyżej, która zaczyna się odmyFilter
wydaje się bardzo dziwne. Czy to jest definicja metody dla metody zwanejmyFilter
? Jeśli tak, to co:'*'
znaczy po każdym parametrze? Myślałem, że może to być domyślna wartość parametru, ale tak będzie='*'
. Widziałem nazwane parametry przy użyciu dwukropków w metodziepołączenia wcześniej, ale nie mogło to być wywołanie metody, ponieważ nie zdefiniowałemmyFilter()
gdziekolwiek indziej.
Myślę, że zrozumiałbym o wiele lepiej, gdyby ktoś mógł mi powiedzieć, jak wykonać kod filtrujący z normalnej klasy Groovy. Innymi słowy, jeśli mam plik MyFilters.groovy, który zawiera powyższe linie, jak mogę ukończyć ten kod Groovy, aby wypisał „Jestem filtrujący”?
import MyFilters
def mf = new MyFilters()
mf.filters.somethingGoesHere // Help! How do I finish this line so it calls my filtering code?