Задать вопрос
Ответы пользователя по тегу Шаблонизаторы
  • Freemarker: ваши мнения?

    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
    Ответ написан
    Комментировать