Freemarker: ваши мнения?

Стоим перед выбором template engine. Есть люди рекомендующие freemarker. Я имел опыт общения с ним и он мне не очень понравился в виду своей малой похожести на xml и неочевидным синтаксическим сахаром.


Кто-нибудь может указать очевидные минусы/плюсы по сравнению с jsp/taglibs?
  • Вопрос задан
  • 11048 просмотров
Пригласить эксперта
Ответы на вопрос 4
dbmaster
@dbmaster
Мы работали с фримаркером. Он решал все наши задачи которые возникали. Однако это было 3-4 года назад.

Фримаркер можно было использовать вне servlet-контейнера. JSP 3-4 года назад выглядело более громоздко.

Плюс фримаркера — более простое написание библиотеки тэгов и использование closures (функций и макросов) в каком-то виде.

Grails не смотрели? grails.org/doc/latest/guide/theWebLayer.html#viewsAndTemplates
Ответ написан
Sauron
@Sauron
Последний раз работал с JSP версий 2.0, так-то может я какие-то важные вещи из JPS2.1/2.2 упустил — с ними имел дело только мельком. Но в целом так чтоб совсем радикально вроде ничего не поменялось.

Проблемы JSP:
1. Спагетти код
Скриптлеты = гарантированный спагетти код. Без них же часто толком не обойтись.
2. Громоздкий синтаксис
К примеру if/then/else в JSP обычно пишут JSTL-ным c:choose/c:when/c:otherwise. Это очень verbose и громоздко.
3. Проблематичность создания реюзабельного кода
Объявлять методы прямо в JSP странице можно, но их не вызовешь из другой JSP страницы. Написание таглибов в 2.0 было отдельным сложным таском, который не сравнится с написанием макроса в Velocity, где это дело элементарное.
Может .tag файлы JSP2.1 решают это, я не знаю.
4. Завязка на request/response и всевозможные context-ы.
В чём проблема? Например, у вас есть JSP страница, которая используется как темплит для рендера отчёта об исполнении какой-то задачи. Пока это делается по клику юзером кнопки в браузере — всё отлично.
Но вот появилась задача исполнять тот же таск регулярно с помощью планировщика, и отсылать этот же отчёт юзеру на email. Что делать? С Velocity/Freemarker/Jelly проблем не будет — тот же темплит будет реюзатся.
С JSP прийдётся всё переделывать.
5. Сложности спецификации — JSP2.2 появился аж в 2009-м году, и добавил вызовы методов с аргументами в EL — то, что было 100500 лет назад в темплитин енджайнах.
Меня здесь агитировали, что вызовы методов с аргументами — признак прохого дизайна, но я категорически не согласен.
Зато признак какого дизайна — наличие SQL тегов в JSTL например? Явно не хорошего.

Больше здесь:
stackoverflow.com/questions/4812755/difference-between-jsp-el-jsf-el-and-unified-el
adamgent.com/post/6091183966/jsp-el-2-1-versus-el-2-2
Ответ написан
Комментировать
alexeygrigorev
@alexeygrigorev
Переворачиватель пингвинов
Как по мне, так jsp с инклюдами + tiles — самое лучшее. Пробовал и Freemaker, и Velocity — всё не то… Очевидных минусов не укажу, но осадочек после использования последних остался. А в идеале хотелось бы что-то типа шаблонов Django — но для java ничего подобного не получилось найти.
Ответ написан
@dborovikov
Мне не понравилились во фримаркере генерируемые им сообщения при наличии ошибок в шаблоне и не понравилась поддержка IDE. А еще синтаксис какой-то сложный, хотя возможно это потому, что я не долго с ним общался.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы