GRAILS:<g:layouttitle>不起作用

时间:2018-05-03 21:23:05

标签: java grails tags

我想基于本教程为我的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 /   类java.lang.NullPointerException   信息   请求处理失败;嵌套异常是org.grails.gsp.GroovyPagesException:处理GroovyPageView时出错:[views / layouts / page.gsp:4]执行标记时出错:[views / layouts / page.gsp:4]执行标记时出错:null   引起的   空

没有它可以正常工作。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您不应直接显示装饰器页面(grails-app/views/layouts dir之外)。这些的目的是装饰其他页面。

所以,而不是像

这样的废话
"/"(view:'/layouts/page')

你应该像使用smth一样:

"/"(view:'/mainpage')

以便mainpage.gsp装饰layouts/page.gsp