Java HTML View Engine с основными шаблонами и вложенными представлениями - PullRequest
0 голосов
/ 31 декабря 2011

Я отчаянно ищу движок представления Java HTML, который отвечает трем основным требованиям:

  1. Поддержка главных шаблонных страниц.
  2. Шаблоны HTML можно использовать в качестве подпредставлений в других шаблонах.
  3. Шаблоны HTML не обязательно должны поддерживаться файлами конфигурации или классами Java.

Это для веб-приложения Java, которое в основном состоит из страницы только для чтения и нескольких страниц с формами. Скорее всего, я буду использовать его в сочетании с инфраструктурой MVC.

Мастер шаблонов страниц

Основная структура HTML должна определяться главной HTML-страницей. Различные страницы просто предоставляют основной контент, который помещается на главную страницу для создания последней страницы. Это больше, чем просто включение верхнего и нижнего колонтитула.

подвиды

Страница должна иметь возможность использовать другие HTML-страницы / шаблоны в качестве подпредставлений в своем собственном контенте. Он должен иметь возможность передать хотя бы один параметр, чтобы предоставить данные, которые необходимо отобразить в подвиде. Кроме того, должна быть возможность рекурсивно использовать дополнительные подпредставления в подпредставлении. Опять же, это выходит за рамки простого include механизма.

Без подложки

Шаблоны HTML должны состоять из одного файла, который в основном представляет собой страницу HTML или XML, где определенные части будут заменены на основе предоставленных данных. Им не нужно никаких дополнительных (на шаблон) конфигурационных файлов. И им не нужно реализовывать какие-либо классы Java для поддержки.

Я уже посмотрел многие движки шаблонов Java. Но ни один из них, кажется, не отвечает этим требованиям. (В мире .NET ASP.NET MVC с механизмом представления Razor идеально подошел бы.)

Обновление:

До сих пор я рассматривал следующие двигатели (пожалуйста, дайте мне знать, если я упустил способ выполнить свои требования с одним из этих двигателей):

  • JSP : Имеет только очень простой механизм включения без основных шаблонов или соответствующей области видимости для подпредставлений и т. Д.
  • Скорость : немного продвинутый механизм включения, но нет главных страниц.
  • FreeMarker : механизм включения, нет главных страниц.
  • Гобелен : Хорошие компонентные подпредставления, а также механизм создания шаблонов. Однако, кажется, что невозможно легко использовать часть механизма шаблонов без остальной части фреймворка, которая слишком ориентирована на страницы, чтобы быть объединенной с фреймворком MVC.
  • Плитка : Требуется две страницы JSP на последнюю страницу. Два слоя (tile и jsp) делают его слишком сложным, особенно для подпредставлений.

Обновление (2): Я изменил термин: механизм просмотра вместо механизм шаблонов , подпредставления вместо компонентов .

1 Ответ

0 голосов
/ 31 декабря 2011

Вы действительно не смотрели на шаблонизаторы. JSP, Velocity и FreeMarker не являются движками шаблонов (в вашем понимании это движок шаблонов). Это языки, позволяющие динамически генерировать разметку и получать данные для отображения в сгенерированном HTML из объектов Java. Tapestry - это полноценная платформа для веб-приложений, основанная на компонентах.

Если вы используете JSP для генерации HTML-страниц, вы можете использовать шаблонизатор поверх JSP, такой как Tiles или SIteMesh, который будет обрабатывать шаблоны и, таким образом, позволять иметь один JSP на «компонент» полного стр. JSP, как правило, не следует использовать без веб-инфраструктуры MVC, такой как Stripes, Spring MVC или Struts2. Все они имеют собственную поддержку шаблонов и / или поддерживают интеграцию другого, такого как SiteMesh или Tiles.

...