我知道我可以在UrlMappings.groovy中使用"/"(controller: "default")
为根页面指定控制器,但是我想让我的主布局页面(在这种情况下是main.gsp)访问至少一个已定义的控制器。我试过"/layouts/main.gsp"(controller: "default")
但是没有用。我怎么能完成它?谢谢!
答案 0 :(得分:4)
main.gsp
是布局而不是页面。布局由控制器呈现的页面使用。您不应该有使控制器呈现布局的设计。它摧毁了Grails的美丽结构。
如果要访问该布局中的对象,则将对象传递给使用该布局的页面。
告诉我们您的用例,我们可能会帮助您一些。
答案 1 :(得分:-2)
我找到了解决问题的另一种方法。现在,我可以为每个操作传递从会话中提交的用户实例。因此,我的布局标题每次都会显示用户信息(当然,如果用户已登录)。
我的步骤:
从创建的过滤器修改“after”clousure 为了获得当前用户并将其传递给每个控制器的动作,它假设是这样的:
after = { Map model ->
def user = null
if (!session.isNew()) {
user = session["user"]
if (user) {
if (!model)
model = [:]
model["user"] = user
}
}
}
我希望它能提供帮助,谢谢!