指定main.gsp布局的控制器

时间:2012-09-03 00:38:11

标签: grails

我知道我可以在UrlMappings.groovy中使用"/"(controller: "default")为根页面指定控制器,但是我想让我的主布局页面(在这种情况下是main.gsp)访问至少一个已定义的控制器。我试过"/layouts/main.gsp"(controller: "default")但是没有用。我怎么能完成它?谢谢!

2 个答案:

答案 0 :(得分:4)

main.gsp是布局而不是页面。布局由控制器呈现的页面使用。您不应该有使控制器呈现布局的设计。它摧毁了Grails的美丽结构。
如果要访问该布局中的对象,则将对象传递给使用该布局的页面。
告诉我们您的用例,我们可能会帮助您一些。

答案 1 :(得分:-2)

我找到了解决问题的另一种方法。现在,我可以为每个操作传递从会话中提交的用户实例。因此,我的布局标题每次都会显示用户信息(当然,如果用户已登录)。

我的步骤:

  1. 首先,创建一个grails过滤器;
  2. 从创建的过滤器修改“after”clousure 为了获得当前用户并将其传递给每个控制器的动作,它假设是这样的:

    after = { Map model ->
    
        def user = null
    
        if (!session.isNew()) {
            user = session["user"]
    
            if (user) {
                if (!model)
                    model = [:]
    
                model["user"] = user
            }
        }
    
    }
    
  3. 我希望它能提供帮助,谢谢!