documentacion docs grails indexing model

docs - grails documentation 2.4 4



Mejores prácticas para la página de índice de Grails (4)

En Grails 1.3.6 por solo agregar

"/index.gsp"(uri:"/")

a UrlMappings.groovy funcionó bien para mí. Tiene el mismo efecto que agregar un nuevo controlador y mapeos como se describió anteriormente.

A continuación está mi completo UrlMappings.groovy:

class UrlMappings { static mappings = { "/$controller/$action?/$id?"{ constraints { // apply constraints here } } "/"(view:"/index") "500"(view:''/error'') "/index.gsp"(uri:"/") } }

¿Cuál es la manera correcta de poblar el modelo para la página de índice en una aplicación de Grails? No hay IndexController por defecto, ¿hay algún otro mecanismo para obtener listas de esto y aquello en el modelo?


No afirmaré que este es el camino correcto, pero es una forma de comenzar las cosas. No es necesario tener un controlador predeterminado. Agregue una asignación a UrlMappings.groovy:

class UrlMappings { static mappings = { "/$controller/$action?/$id?"{ constraints { // apply constraints here } } "500"(view:''/error'') "/" { controller = "quote" } } }

A continuación, agregue una acción de índice al controlador ahora predeterminado:

class QuoteController { def index = { ... } }

Si lo que desea cargar ya es parte de otra acción simplemente redireccione:

def index = { redirect(action: random) }

O para realmente reutilizar, poner la lógica en un servicio:

class QuoteController { def quoteService def index = { redirect(action: random) } def random = { def randomQuote = quoteService.getRandomQuote() [ quote : randomQuote ] } }


No pude hacer funcionar el ejemplo anterior de Ed T. ¿Quizás Grails ha cambiado desde entonces?

Después de algunos experimentos y algunos hurgues en la red, terminé con esto en UrlMappings.groovy :

"/"(controller: ''home'', action: ''index'')

Mi HomeController se ve así:

class HomeController { def index = { def quotes = = latest(Quote.list(), 5) ["quotes": quotes, "totalQuotes": Quote.count()] } }

Y en views/home , tengo un archivo index.gsp . Eso hace index.gsp archivo index.gsp en vistas, por lo que lo index.gsp .


La buena respuesta: si necesita completar un modelo para la página de índice, es hora de cambiar de un index.gsp directo a un controlador de índice.

La respuesta malvada: si creas un filtro cuyo controlador es ''*'', se ejecutará incluso para páginas estáticas.