Grails-Filtersyntax oder Aufrufen eines Grails-Filters außerhalb von Grails

Grails bietetFilter das läuft vor deinen Controllern. Sie sind in Klassen definiert, die wie folgt aussehen:

class SecurityFilters {
   def filters = {
       myFilter(controller:'*', action:'*') { // What are those weird colons??
           print "I'm filtering!"
           // Code that does the filtering goes here
       }
   }
}

Diese funktionieren hervorragend, aber ich würde die Syntax gerne besser verstehen, da sie nicht wie Groovy-Code aussieht, den ich zuvor gesehen habe. Insbesondere die Zeile darüber beginnt mitmyFilter scheint sehr seltsam. Ist dies eine Methodendefinition für eine aufgerufene Methode?myFilter? Wenn ja, was ist das?:'*' Mittelwert nach jedem Parameter? Ich dachte, es könnte ein Standardparameterwert sein, aber das wäre='*'. Ich habe benannte Parameter mit Doppelpunkten in Methode gesehenAnrufe vorher, aber dies konnte kein Methodenaufruf sein, da ich nicht definiert habemyFilter() irgendwo anders.

Ich denke, ich würde es viel besser verstehen, wenn mir jemand sagen könnte, wie man den Filtercode aus einer normalen Groovy-Klasse ausführt. Mit anderen Worten, wenn ich eine Datei MyFilters.groovy habe, die die obigen Zeilen enthält, wie könnte ich diesen Groovy-Code beenden, damit er "Ich filtere" ausgibt?

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage