Я отчаянно ищу движок представления Java HTML, который отвечает трем основным требованиям:
- Поддержка главных шаблонных страниц.
- Шаблоны HTML можно использовать в качестве подпредставлений в других шаблонах.
- Шаблоны 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):
Я изменил термин: механизм просмотра вместо механизм шаблонов , подпредставления вместо компонентов .