gpt4 book ai didi

model-view-controller - 从 Grails 中的布局 View 访问模型

转载 作者:行者123 更新时间:2023-12-04 17:42:29 26 4
gpt4 key购买 nike

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

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

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

但是,似乎 layout-GSP:s 无法访问模型,因此无法访问用户变量(尝试时出现“无 session ”异常)。使我的布局取决于用户是否登录的推荐方法是什么?

提前致谢!

最佳答案

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

class SecurityFilters {

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

该示例假设您将当前用户的 id 存储在 session 属性“userId”中,并且您有一个域类“User”。在布局中使用它就像这样简单:
<g:if test="${request.user}">
Current User: ${request.user.username}
</g:if>

关于model-view-controller - 从 Grails 中的布局 View 访问模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/503279/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com