GRAILS: <g: layoutTitle> не работает

Я хочу создать макет для своего приложения Grails на основе этого руководства: http://grails.asia/grails-tutorial-for-beginners-layout-templates

Я создаю page.gsp со скелетом моей страницы:

<!DOCTYPE html>
<html>
<head>
    <title><g:layoutTitle default = "Grails"/></title>
    <style>
    #header {background-color:#ffe0e0;text-align: center;}
    #footer {background-color:#e0e0ff;text-align: center;}
    </style>
    <g:layoutHead/>
</head>
<body>
    <div id = "header">HEADER</div>

    <g:layoutBody/>
    <div id = "footer">FOOTER</div>
</body>
</html>

И mainpage.gsp с основным содержанием:

    <!DOCTYPE html>
    <html>
    <head>
        <meta name = "layout" content = "page"/>
        <title>I am a test page</title>
        <link rel = "stylesheet" href = "${resource(dir: 'css', file: 'main.css')}" type = "text/css">
    </head>
    <body>
    <p>Test page.</p>
    </body>
    </html>

Страница отображается в UrlMappings.groovy:

"/"(view:'/layouts/page')

Но когда я пытаюсь запустить свой проект, я всегда получал такое сообщение об ошибке:

URI/ Class java.lang.NullPointerException Message Request processing failed; nested exception is org.grails.gsp.GroovyPagesException: Error processing GroovyPageView: [views/layouts/page.gsp:4] Error executing tag : [views/layouts/page.gsp:4] Error executing tag : null Caused by null

Без него работает нормально. Как я могу решить эту проблему?

Какую версию Grails вы используете?

Daniel 04.05.2018 00:50
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
173
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы НЕ должны отображать страницы декораторов напрямую (из каталога grails-app/views/layouts). Их цель - украсить ДРУГИЕ страницы.

Итак, вместо ерунды вроде

"/"(view:'/layouts/page')

вы должны использовать что-то вроде:

"/"(view:'/mainpage')

так что ваш mainpage.gsp украшен layouts/page.gsp.

Другие вопросы по теме