Вложенные макеты Grails
Я новичок в 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">
, Кажется, сейчас работает.