我是Grails / GSP / Sitemesh的新手,正在试图弄清楚我是否可以使用嵌套布局。我希望有一个主要布局,将用于我的所有页面,以包含标准页眉,页脚和我所有的CSS / JavaScript资源。在另一个页面子集上,我想定义一个将从主要页面继承的布局,并添加一个侧面菜单和一些其他内容。这样,该部分的每个页面都引用了第二个布局,并自动从中获取内容以及主要布局。
这可能吗?如何定义第二个布局以引用主要布局以使其工作?
更新1
所以,我仔细阅读了下面评论中链接的博客文章,但仍然遇到了麻烦。我尝试使用以下层次结构设置一个非常简单的测试用例。
/layouts/main.gsp
-- /layouts/sub.gsp
-- /test/index.gsp
对于我的网页,我在main.gsp中有以下内容:
<!DOCTYPE html>
<html>
<head>
<title><g:layoutTitle default="Grails"/></title>
<g:layoutHead/>
</head>
<body>
MAIN <br />
<g:layoutBody/>
</body>
</html>
在sub.gsp中:
<g:applyLayout name="main">
<html>
<head>
<title><g:layoutTitle/></title>
<g:layoutHead/>
</head>
<body>
Sub<br />
<g:pageProperty name="page.content"/>
</body>
</html>
</g:applyLayout>
最后在index.gsp:
<html>
<head>
<meta name="layout" content="sub"/>
<title>Title Here</title>
</head>
<body>
<content tag="page.content">
Content
</content>
</body>
</html>
当我加载页面时,页面标题设置正确,我在页面上看到“Main”和“Sub”,但“Content”未显示。我敢肯定我一定是做了一些简单的错误......任何想法?
更新2
我发现我有<content tag="page.content">
而且应该是<content tag="content">
。似乎现在正在运作。