【问题标题】:Use controllers globally in Grails在 Grails 中全局使用控制器
【发布时间】:2011-01-20 16:41:07
【问题描述】:

我是 Grails 的新手,正在尝试用它构建一个 CMS。 我希望导航菜单从数据库中读取,因此新页面将自动在导航中获取链接。我一直在阅读Grails: use controller from index.gsp 和相关问题,但答案似乎对我不起作用。 :(

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

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

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

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

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

【问题讨论】:

    标签: grails grails-controller


    【解决方案1】:

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

    【讨论】:

    • 当我删除 "/"(view:"index") 时,它会停止重定向到索引页面,结果:错误提示“请求的资源 (/MyDomain/) 不可用。”
    • Navigation 应该是navigation
    【解决方案2】:

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

    在构建一个全新的 CMS 之前可能值得研究一下 :-)

    【讨论】:

      【解决方案3】:

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

      DomainClass.findAll( String query )
      

      在 g:each 标签中使用的属性

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

      这让我可以从任何页面读取任何数据库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-21
        • 2015-05-05
        相关资源
        最近更新 更多