Библиотека шаблонов Java похожа на ZPT (язык атрибутов)

Я недавно использовал ZPT в Python, и мне нравится язык шаблонов. Я искал что-то подобное для Java, но не смог найти ничего, что бы мне понравилось. Самым близким является FreeMarker.

Проблема с FreeMarker и другими движками шаблонов Java, на которые я смотрел, заключалась в их синтаксисе стиля JSP, который допускает несоответствующий XML. Мне просто интересно, существует ли механизм шаблонов Java, который похож на шаблоны страниц Zope, так что это язык "атрибутов", требующий действительный xml.

7 ответов

Решение

Я думаю, что есть несколько шаблонных движков, которые вы ищете:

  • Кембридж
  • Thymeleaf
  • JTP (мертвый - но точная реализация)
  • javaTAL (мертвый - но точная реализация)

Другие подходы, поддерживающие действительный HTML:

Существует Distal для клиентских шаблонов.

Ядро шаблонов Java, которое вы найдете наиболее похожим на Chameleon, - это Thymeleaf.

FreeMarker имеет неприятную зависимость от AWT. Это делает невозможным использование с такими вещами, как Google App Engine.

Я предпочитаю использовать StringTemplate для всех моих потребностей в шаблонах Java. Это единственная система шаблонов на основе Java, которая строго отделяет логику от шаблона.

StringTemplate - это движок шаблонов Java (с портами для C#, Python, Ruby и Scala) для генерации исходного кода, веб-страниц, электронных писем или любого другого форматированного текстового вывода. StringTemplate особенно хорош для многоцелевых генераторов кода, нескольких скинов сайтов и интернационализации / локализации

Его отличительной чертой является то, что он строго обеспечивает разделение вида модели в отличие от других двигателей. Строгое разделение делает сайты и генераторы кода более гибкими и удобными в обслуживании; это также обеспечивает превосходную защиту от вредоносных авторов шаблонов.

Так как вы генерируете XML

Другое решение, которое неочевидно на первый взгляд, - это использование JAXB. У нас есть проект, который требует от нас генерировать XML, у нас есть очень хорошо определенные XSD-файлы для выходных файлов, создание объектов и их сортировка очень просты и очень безболезненны.

В настоящее время я знаю две реализации tal для Java:

Существует также Apache Velocity. Хотя это не требует, чтобы ваши шаблоны были действительными XML. Это может быть нарушителем сделки для вас, учитывая вопрос. Вы, вероятно, могли бы применить это правило с помощью расширений основных классов.

Как насчет GXP?

Там также LSP и xtempore.

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