在Grails中全局使用控制器

时间:2011-01-20 16:41:07

标签: grails grails-controller

我是Grails的新手,正在尝试使用它构建CMS。 我希望导航菜单从数据库中读取,以便新页面自动获取导航中的链接。我一直在阅读Grails: use controller from index.gsp及相关问题,但答案对我来说似乎并不适用。 :(

我创建了一个名为Navigation的域类和一个名为_header的模板。

在“导航/列表”命名空间中,一切正常,但在外面我无法访问导航数据。

我已经像这样设置了网址映射:

class UrlMappings {
    static mappings = {
        "/$controller/$action?/$id?"{
            constraints {
                // apply constraints here
            }
        }
        "/"(controller : "Navigation", action : "list")
        "/"(view:"/index")
        "500"(view:'/error')
    }
}

但这似乎不起作用。关于可能出现什么问题的任何线索?

3 个答案:

答案 0 :(得分:1)

你有两个“/”映射,你的新映射和原始映射:“/”(view:“/ index”) - 对于初学者你需要删除另一个映射。

答案 1 :(得分:0)

不确定您是否知道这一点,但有一个名为Weceem的Grails构建的开源CMS。如果您需要将其用作另一个Grails应用程序的一部分,还有一个grails plug in for Weceem,因此您可以将其用作应用程序的一部分。

在构建完整的新CMS之前,可能值得研究: - )

答案 2 :(得分:0)

我看错了所有问题,urlmapping只使index.gsp重定向到导航/列表。我在寻找的是

DomainClass.findAll( String query )

在g:每个标签中使用的属性

<g:each in="${Navigation.findAll('from Navigation as n where n.css=?', ['ctBoven'])}" var="oNavigation" status="i">

这允许我从任何页面读取任何数据库。