当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《从Grails中的布局视图访问模型》经验,为你挑选了1个好方法。

我在Grails中使用布局支持(sitemesh)工作正常.我想调整我的布局,使其取决于用户是否登录.

我的grails-app/views/layouts/main.gsp包含以下代码:


  Username: ${user.username}

但是,看起来好像layout-GSP:s无法访问模型,因此无法访问用户变量(尝试时我得到"No session"异常).制作布局的推荐方法取决于用户是否登录?

提前致谢!



1> Siegfried Pu..:

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

class SecurityFilters {

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

该示例假定您将当前用户的id存储在会话属性"userId"中,并且您具有Domain类"User".在布局中使用它就像这样简单:


   Current User: ${request.user.username}

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有