Мы годами пользовались Sitemesh, и у меня смешанные чувства по этому поводу.
Я предпочитаю писать стандартные файлы тегов JSP (.tag или .tagx) вместо применения applydecorator. Я думаю, что тег applydecorator фактически устарел с появлением файлов тегов, но слишком многие пользователи Sitemesh не заметили.
Почти все наше использование Sitemesh было такого рода. У нас было бы несколько общих шаблонов страниц, которые наши JSP-страницы явно называли бы макетом. «Используйте стандартную компоновку, вот меню навигации и тело страницы». Файлы тегов являются точной копией этой функциональности, но они стандартизированы, поддерживаются любым веб-инструментом J2EE и встроены в контейнер, а не в другую зависимость.
Для истинного оформления страницы, где сама страница JSP вообще не ссылается на Sitemesh, я думаю, что это имеет смысл на высоком уровне, но мне все еще не нравится, что вся страница анализируется снова.
Эта вторая проблема на самом деле не вина Ситемеша; учитывая Servlet API, с которым он должен работать, я не знаю, что еще он мог сделать. Но это заставляет меня задуматься, может ли быть полезна альтернатива на основе DOM API Servlet на основе потоков. Другими словами, вместо того, чтобы сервлеты записывали свои выходные данные в поток, что, если они добавили узлы в дерево? Это обеспечит правильное формирование вывода и сделает более дешевым выполнение структурных преобразований, как это делает Sitemesh, или кодирование вывода в различные форматы, такие как XHTML, HTML или JSON на лету.