Синтаксис фильтра 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? Если так, то что:'*' значит после каждого параметра? Я думал, что это может быть значением параметра по умолчанию, но это будет='*', Я видел именованные параметры, используя двоеточия в методеcalls раньше, но это не может быть вызовом метода, потому что я не определилmyFilter() где-нибудь еще.

Думаю, я бы лучше понял, если бы кто-то мог просто сказать мне, как выполнить код фильтрации из обычного класса Groovy. Другими словами, если у меня есть файл MyFilters.groovy, который содержит строки выше, как я могу завершить этот код Groovy, чтобы он печатал «I filtering»?

import MyFilters
def mf = new MyFilters()
mf.filters.somethingGoesHere // Help! How do I finish this line so it calls my filtering code?

Ответы на вопрос(2)

Ваш ответ на вопрос