LINUX.ORG.RU

Шаблонизатор для Java

 , ,


0

2

Подскажите шаблонизатор для Java

(такой который очень легко вызвать из Java и не боясться что в следующей версии все сломается - привет основанным на clojure движкам, которые якобы легко вызываются из java, а на самом деле ты первые шесть часов бьясь об стенку пытаешься сконвертить Map<String,Object> с переменными контекста в какую-то негуманоидную кложуровскую структуру через криворукие коннекторы между джавой и кложуром. И который через неделю меняется, и надо повторять страдания. То же про скалу.)

Должен форматировать произвольный текст в произвольном синтаксисе (привет, thymeleaf, который в JSON научился только в 3beta). Не надо никакой заточки под формат, потому что кромсаться будет и XML, и JSON, и вообще произвольный текст.

Должен уметь в простые плейсхолдеры типа «блаблаблафигня${myVariable}блаблаблафигня»

Должен без приседаний и плясок с бубнами (привет jsp) транслировать String (исходник) + Map<String,Object>(переменные контекста) -> String (результат).

То есть никакой параши с интеграцией со спрингом, сервлет-контейнером и прочим, никакого стейта (ну разве что указать темповый каталог для хранения предкомпилированных шаблонов - с возможностью не указывать), никаких прибитых гвоздями биндингов к Спрингу и JSFу, никаких предположений о версии servlet-api и других таких вещей. Если сильно захочется прибить его куда-то гвоздями, я сам прибью за 10 минут, дурное дело нехитрое.

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

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

Очень желательно иметь возможность расширять синтаксис (свои тэги, например) и иметь фрагменты (прямо в шаблоне определять подшаблоны).

Очень желательно было бы наличие прозрачного парсинга (типа Microsoft Razor):

иначе говоря, вот так плохо:

<ul id=products>
<% foreach item in products { %>
    <li><%= item.name =%></li
<% } %>
</ul>

а вот так хорошо:

<ul id=products>
@foreach item in products {
    <li>@item.name</li>
}
</ul>
★★★★☆

Не вижу разницы между твоими примерами, чем велосити не устраивает?

maloi ★★★★★
()
Ответ на: комментарий от anonymous

нелорный разговор, намыль пожалуйста свои контакты пообщаться, мое мыло hedin.pr@gmail.com, тема «возвращайся в аксмор» или что-нибудь дикое чтобы бросалось в глаза среди тонн спама )

stevejobs ★★★★☆
() автор топика

опять толстячок высрал портяночку

anonymous
()

http://www.mitchellbosecke.com/pebble/home - удобный и быстрый шаблонизатор, сам недавно перешел на него с groovy template engine в относительно высоконагруженном проекте, очень доволен.

f1xmAn ★★★★★
()
Ответ на: комментарий от stevejobs

Не пробовал, меня twirl вполне устраивает, но тебе он не подойдет так как там отовсюду Scala торчит.

Handlerbars хорош тем что его можно рендерить и на сервере, и на клиенте.

maxcom ★★★★★
()

стандарт дефакто под java это FreeMarker, но судя по описанию вы тему создали, чтоб высоколобно повыпендриваться, а не выбрать чего-нить.

vtVitus ★★★★★
()
Последнее исправление: vtVitus (всего исправлений: 1)
Ответ на: комментарий от vtVitus

ты юзаешь исключительно стандарты что ли? Тогда юзай фримаркер и велосити

а мне там много вещей мешает. Например, невозможность писать вставки Java-кода как на JSP, отсутствие наследования шаблонов (#nested за такое не подойдет, я хочу сложное наследование), да уродский синтаксис с xml-скобочками в конце концов

а меж тем каждый день появляются новые шаблонизаторы, может там есть что-то более достойное

например, twirl и scalate. Но с ними надо погеморроиться с интеграцией

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от vtVitus

остановился на фримаркере, у хипсторских поделок слишком много багов :(
ждем еще год, мож чего интересного сделают

stevejobs ★★★★☆
() автор топика
Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от stevejobs

я уже не первый год жду, что чего-нить приличное заделают. но фримаркер упорно из проекта в проект мигрирует. он ещё очень прилично по скорости работает, сейчас проект, где jsp фактически заменена ftl-ем, весьма и весьма не плохо.

vtVitus ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.