Используйте контроллеры по всему миру в Grails - PullRequest
0 голосов
/ 20 января 2011

Я новичок в Grails и пытаюсь создать CMS с ним.Я хочу, чтобы навигационное меню считывалось из базы данных, чтобы новая страница автоматически получала ссылку в навигации.Я читал Grails: используйте контроллер из index.gsp и связанные вопросы, но ответы, похоже, не работают для меня.: (

Я создал класс домена с именем Navigation и шаблон с именем _header.

В пространстве имен "Navigation / list" все работает нормально, но снаружи я не могу добраться доНавигационные данные.

Я настроил отображение URL следующим образом:

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

Но, похоже, это не работает. Есть какие-то подсказки, в чем может быть проблема?

Ответы [ 3 ]

1 голос
/ 20 января 2011

У вас есть два сопоставления для "/", новое и исходное: "/" (view: "/ index") - для начала вам нужно удалить другое.

0 голосов
/ 21 января 2011

Я смотрел на проблему все неправильно, 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">

Это позволяет мне читать любую базу данных с любой страницы.

0 голосов
/ 20 января 2011

Не уверен, если вы знаете об этом, но в Grails есть встроенная CMS с открытым исходным кодом, которая называется Weceem .Если вам нужно использовать его как часть другого приложения Grails, есть также плагин grails для Weceem , так что вы можете использовать его как часть своего приложения.в него, прежде чем создавать полностью новую CMS: -)

...