Преимущества использования JSTL против Velocity для слоя представления в приложении MVC? - PullRequest
11 голосов
/ 19 декабря 2008

Я сейчас создаю приложение Spring MVC. Я хотел использовать страницы JSP с библиотеками тегов для обработки слоя представления и форматирования HTML, но я натолкнулся на другую группу в моей компании, которая использует шаблоны Velocity для той же цели.

Из того, что я вижу, мне кажется, что между двумя подходами много общего:

  1. Оба имеют простой для понимания синтаксис. Позволяет не-разработчикам понимать и использовать, позволяя дизайнерам сосредоточиться на HTML / CSS и использовать директивы / библиотеки тегов только в тех немногих случаях, когда им нужен условный / динамический контент, не имея полного понимания Джава.
  2. Просто увидеть, какая часть содержимого является HTML, а какая - директивами / логикой.
  3. Оба широко используются и хорошо поддерживаются.
  4. Простота интеграции с Spring MVC.

Но, сравнивая две технологии, я не вижу особых причин использовать одну против другой. У меня проблемы с продумыванием каких-либо минусов, специфичных для Velocity или JSTL.

Так что мой вопрос в том, каковы плюсы и минусы каждого на ваш взгляд? Если вы создали (Spring) приложение MVC, используя одно или другое, что заставило вас принять решение о используемой вами технологии слоя представления и что (если вообще что-то) заставило вас пойти против другого?

Обновление : я нашел похожее обсуждение этой же темы в архиве здесь на форуме Spring Framework, которое может быть интересным для любого, кто принимает такое же решение между JSTL и скорость, как я.

Ответы [ 3 ]

8 голосов
/ 19 декабря 2008

Я бы предпочел использовать Velocity только потому, что использование JSP + JSTL может позволить ленивым / неаккуратным разработчикам попадать в неприятности, добавляя скриптлеты. Не должно быть никаких причин иметь код Java на вашем уровне просмотра. Чтобы понять Velocity, не нужно много, и на самом деле я взял его примерно через две недели. Хотя мне не нравится форматирование вывода, по большей части это работает довольно хорошо. На самом деле мы используем его не на уровне представления приложения, а для генерации HTML-кода для использования другими браузерами. Мы сохраняем выходные данные Velocity в виде файлов, которые затем развертываются на другом сервере для использования другими веб-клиентами.

6 голосов
/ 01 января 2009

Я на самом деле немного предпочитаю Freemarker Velocity, на тот случай, если вы открыты для изучения других вариантов. Сравнение здесь:

http://freemarker.org/fmVsVel.html

Я согласен с утверждениями Бена о применении простого представления, избегая JSP и возможности скриптлетов. Мне также нравится возможность отображать шаблон Freemarker или Velocity в любой среде выполнения (JUnit, метод main ()) без необходимости использования контейнера Servlet / JSP, как это делает JSP.

2 голосов
/ 03 февраля 2009

JSP также сложнее визуально отличить от встроенного HTML. С Velocity это очень очевидно.

Кроме того, пакет VelocityTools предоставляет множество дополнительных функций.

...