использование sitemesh со Struts2 - PullRequest
1 голос
/ 23 мая 2011

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

1 Ответ

1 голос
/ 23 мая 2011

Вот минимальный пример. 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 > внутри.

...