traducir inglés ingles español cómo como model-view-controller grails sitemesh

model view controller - inglés - Accediendo al modelo desde una vista de diseño en Grails



cómo se dice en inglés (1)

Sugeriría utilizar la solicitud o el alcance de la sesión para ese fin. Probablemente, la forma más SECA es poblar el alcance es un filtro. Por ejemplo, en el archivo grails-app / conf / SecurityFilters.groovy (deberá crearlo):

class SecurityFilters { def filters = { populateCurrentUser(controller: ''*'', action: ''*'') { before = { request.user = User.get(session.userId) } } } }

El ejemplo asume que almacena la identificación del usuario actual en el atributo de sesión "userId" y que tiene una clase de dominio "Usuario". Usarlo en el diseño es tan simple como esto:

<g:if test="${request.user}"> Current User: ${request.user.username} </g:if>

Estoy usando el soporte de diseño (sitemesh) en Grails, que funciona bien. Me gustaría ajustar mi diseño para que dependa de si un usuario está conectado o no.

Mi grails-app / views / layouts / main.gsp contiene el siguiente código:

<g:if test="${user}"> Username: ${user.username} </g:if>

Sin embargo, parece que el diseño: GSP: s no pueden acceder al modelo y, por lo tanto, a la variable de usuario (obtengo una excepción "Sin sesión" cuando intento). ¿Cuál sería la forma recomendada de hacer que mi diseño dependa de si un usuario está conectado o no?

¡Gracias por adelantado!