grails grails-filters

¿Cómo definir múltiples controladores distintos en el filtro de Grails 2?



grails-filters (3)

Podría incluir lógica dentro del filtro como

if (controllerName == "controller1" || controllerName == "controller2") { ... }

¿Es posible definir múltiples controladores distintos en un filtro de aplicación web Grails 2? Por ejemplo, algo como:

def filters = { someFilterMethod(controller: ''controller1 controller2 ...'', action: ''*'') { ... } }

De lo contrario, ¿hay una manera de especificar que no se incluya el índice principal.gsp en el filtro?


Si puede definir una regla que coincida con index.gsp, entonces puede definir una regla que coincida con todo menos con index.gsp agregando invert: true . Supongo que algo como esto debería hacerlo:

def filters = { someFilterMethod(uri: ''/'', invert: ''true'') { } }

Parece que lo siguiente también debería funcionar:

def filters = { someFilterMethod(uriExclude: ''/'') { } }

Puede proporcionar una expresión regular en lugar de una ruta literal, por lo que si también necesita excluir ''/ index'', entonces solo necesita reemplazar ''/'' con una expresión regular que coincida con ''/'' y ''/ index''. Mis habilidades de expresión regular están oxidadas, pero algo como esto debería hacerlo:

def filters = { someFilterMethod(uriExclude: ''/(index)?'', regex: true) { } }

Advertencia

No he probado ninguno de los códigos de arriba, ¡así que cuidado con Emptor!


Utilice el símbolo de la tubería:

def filters = { someFilterMethod(controller: ''controller1|controller2|...'', action: ''*'') { ... } }