Grails proporciona filters que se ejecuta antes que sus controladores. Están definidas en las clases que se ven así:Sintaxis del filtro de Grails, o, Cómo llamar a un filtro de Grails fuera de Grails
class SecurityFilters {
def filters = {
myFilter(controller:'*', action:'*') { // What are those weird colons??
print "I'm filtering!"
// Code that does the filtering goes here
}
}
}
Estos gran trabajo pero me gustaría entender la sintaxis mejor, ya que no se parece a ningún código maravilloso que he visto antes. En particular, la línea de arriba que comienza con myFilter
parece muy extraña. ¿Es esta una definición de método para un método llamado myFilter
? Si es así, ¿qué significa :'*'
después de cada parámetro? Pensé que podría ser un valor de parámetro predeterminado, pero eso sería ='*'
. He visto parámetros nombrados utilizando dos puntos en el método llamadas a anteriormente, pero esta no podría ser una llamada a un método porque no he definido myFilter()
en ningún otro lado.
Creo que entendería mucho mejor si alguien pudiera decirme cómo ejecutar el código de filtrado de una clase normal de Groovy. En otras palabras, si tengo un archivo MyFilters.groovy que contiene las líneas de arriba, ¿cómo podría terminar este código de Groovy para que se imprima "Estoy filtrando"?
import MyFilters
def mf = new MyFilters()
mf.filters.somethingGoesHere // Help! How do I finish this line so it calls my filtering code?
Gran pregunta Squirrel! He estado luchando con el mismo problema, ¡gracias por preguntar! – alpian
NECESITO saber lo mismo ... casi no puedo dormir, ¡jaja! – Topera