Model view controller 从Grails中的布局视图访问模型

Model view controller 从Grails中的布局视图访问模型,model-view-controller,grails,sitemesh,Model View Controller,Grails,Sitemesh,我正在使用Grails中的布局支持(sitemesh),效果很好。我想调整我的布局,让它取决于用户是否登录 My grails app/views/layouts/main.gsp包含以下代码: <g:if test="${user}"> Username: ${user.username} </g:if> 用户名:${user.Username} 但是,布局GSP:s似乎无法访问模型,因此无法访问用户变量(尝试时出现“无会话”异常)。让我的布局取决于用户是否登

我正在使用Grails中的布局支持(sitemesh),效果很好。我想调整我的布局,让它取决于用户是否登录

My grails app/views/layouts/main.gsp包含以下代码:

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

用户名:${user.Username}
但是,布局GSP:s似乎无法访问模型,因此无法访问用户变量(尝试时出现“无会话”异常)。让我的布局取决于用户是否登录的建议方法是什么


提前谢谢

我建议为此使用请求或会话范围。可能最干燥的方法是填充范围,即过滤器。例如,在文件grails app/conf/SecurityFilters.groovy中(您需要创建它):

该示例假定您将当前用户的id存储在会话属性“userId”中,并且您有一个域类“user”。在布局中使用它非常简单,如下所示:

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

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