Использование sitemesh со Struts2

Может кто-нибудь сказать мне, как использовать Sitemesh. Я создал макет страницы и верхний и нижний колонтитулы. Верхний и нижний колонтитулы включены с отдельных страниц как статические <% @ include>. Теперь я хочу, чтобы средняя часть "содержимого" изменялась, оставляя верхний и нижний колонтитулы одинаковыми. Каким должен быть файл struts.xml и каким будет содержимое Layout для включения дочерних страниц. Как будут действовать действия и другие ссылки на страницах, чтобы весь сайт имел одинаковый интерфейс.

1 ответ

Решение

Вот минимальный пример. http://www.benmccann.com/blog/sitemesh-tutorial-with-examples/

В соответствии с философией sitemesh, следуя шаблону decorator, ваше "сырое" (недекорированное) представление не должно знать, что оно будет "декорировано" (здесь "быть декорированным" может означать "добавить некоторые общие стили в голова и немного общего меню в теле...'). Эта чрезвычайная развязка - красота Ситемеша.

Более конкретно, ваш код представлений Struts2 (в вашем случае JSP, который выводит результат каждого действия) должен быть просто полной HTML-страницей (<html><head>...</head><body>...</body></html>, но без этих "общих" элементов.

Sitemesh будет ловить необработанные HTML-страницы и добавлять общие фрагменты. Это указывается декоратором (у вас может быть более одного), в вашем случае это, вероятно, будет страница JSP (как в примере), и она может иметь некоторую JSP. <%@include > внутри.

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