Так что похоже, что GSP Grails не имеет тега include (поправьте меня, если я ошибаюсь). Самое близкое к "включению" - это использование рендеринг тега. Также есть включить плагин.
В моем случае у меня есть классическая панорамированная страница сверху-слева-посередине-справа-снизу. Верхний заголовок или левая сторона будут включать навигацию. Середина будет содержанием. Правая сторона может включать рекламу. В JSP-версии моего приложения каждая панель, кроме средней, была бы в своем собственном JSP. Затем я включил (используя <jsp:include/>) различные панели на свою страницу. Это правильный подход в GSP?
Какова предпочтительная схема выполнения этого в GSP?





Вы правы, что тег рендеринга может выполнять то, что вы хотите. Попробуйте это с шаблонами, главное - называть их с начальным подчеркиванием. Этот Сообщение блога должен быть полезным.
Вместо импорта или рендеринга панелей для каждого представления вы, вероятно, захотите использовать функциональные возможности макета, которые предоставляет grails (с SiteMesh). Если вы хотите применить один и тот же макет ко всем своим страницам (например, меню / контент / реклама), вы можете просто изменить grails-app/views/layouts/main.gsp, чтобы иметь нужные элементы страницы, и тогда тег <g:layoutBody/> будет заполнен вашими обычными представлениями, отображаемыми вашим контроллеры. Макет main.gsp предоставляется по умолчанию и является макетом по умолчанию для всех (сформированных и сгенерированных) представлений.
Если вам нужно, чтобы на некоторых страницах была реклама, а на других - нет, вам нужно создать новый макет в grails-app/views/layouts (например, main-ads.gsp). Затем в представлениях, в которых вы хотите отображать рекламу, в <head></head>, вы установите макет с помощью <meta name = "layout" content = "main-ads.gsp"/>.
Начиная с Grails 1.1 теперь есть <g:include> tag, который в значительной степени делает то, что вы хотите.
По-прежнему имеет смысл изучить приведенные выше параметры макета / шаблонов, поскольку в большинстве случаев они будут более эффективными.