Grails aufrufen, die vor Ihren Controllern filters laufen. Sie sind in Klassen definiert, die wie folgt aussehen:Grails Filter-Syntax, oder, wie Sie einen Grails-Filter außerhalb Grails
class SecurityFilters {
def filters = {
myFilter(controller:'*', action:'*') { // What are those weird colons??
print "I'm filtering!"
// Code that does the filtering goes here
}
}
}
Diese arbeiten sehr, aber ich möchte die Syntax besser verstehen, wie es wie jedes Groovy-Code sieht nicht ich vorher gesehen habe. Insbesondere scheint die darüber liegende Zeile mit myFilter
sehr merkwürdig zu sein. Ist dies eine Methodendefinition für eine Methode namens myFilter
? Wenn ja, was bedeutet :'*'
nach jedem Parameter? Ich dachte, es könnte ein Standardparameterwert sein, aber das wäre ='*'
. Ich habe benannte Parameter mit Doppelpunkten in der Methode Aufrufe vor gesehen, aber das konnte kein Methodenaufruf sein, weil ich myFilter()
woanders nicht definiert habe.
Ich denke, ich würde viel besser verstehen, wenn mir jemand nur sagen könnte, wie man den Filtercode von einer normalen Groovy-Klasse ausführt. Mit anderen Worten, wenn ich eine Datei MyFilters.groovy habe, die die Zeilen oben enthält, wie könnte ich diesen Groovy-Code beenden, so dass er "Ich filtere" druckt?
import MyFilters
def mf = new MyFilters()
mf.filters.somethingGoesHere // Help! How do I finish this line so it calls my filtering code?
Große Frage Eichhörnchen! Ich habe gerade mit dem gleichen Problem gekämpft - danke, dass du es fragst! – alpian
Ich muss das Gleiche wissen .... Ich kann fast nicht schlafen, lol! – Topera