0

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

4

2 回答 2

4

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

于 2012-09-03T06:18:16.410 回答
-2

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

我的步骤:

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

    after = { Map model ->
    
        def user = null
    
        if (!session.isNew()) {
            user = session["user"]
    
            if (user) {
                if (!model)
                    model = [:]
    
                model["user"] = user
            }
        }
    
    }
    

希望对您有所帮助,谢谢!

于 2012-09-03T20:13:25.847 回答