JSP против FreeMarker

Обеспечивает ли JSP большую гибкость, чем FreeMarker, или наоборот? Мой back-end включает сервлеты. Какой из них используется при каких обстоятельствах?

Ответы

Ответ 1

JSP позволит вам делать больше вещей на уровне представления, поэтому вы можете сказать, что это делает его более гибким. Вещи, которые вы, вероятно, не должны делать, хотя, что можно утверждать как преимущество для FreeMarker. Это обеспечит вам больший контроль над тем, что может сделать слой обзора, и обеспечить лучшее разделение проблем.

Здесь нет никакого правильного ответа. Вы можете технически выполнить практически все, что угодно для вашего пользовательского интерфейса. Без дополнительной информации о вашем проекте сложно сделать рекомендацию. Единственное, что я могу сказать, это то, что вы, вероятно, должны использовать шаблон MVC. Это может быть выполнено с помощью.

Ответ 2

Мой ответ будет определенно пойти с Фримаркером. Причина - гибкость в использовании.

  • Он не требует контейнера сервлета, поэтому вы также можете отображать электронную почту или что-либо на основе текста.

  • В веб-приложении он позволяет создавать веб-модули как банку. Шаблоны Freemarker можно легко загрузить из classpath (также, spring позволяет загружать css/js - статический контент - из класса path с тегом mvc: resources и проверять контроллеры). Таким образом, веб-модуль может содержать свои собственные шаблоны, статические данные и контроллеры.

  • Freemarker является более мощным с точки зрения создания пользовательских тегов, jsp делает его просто болью. Кроме того, пользовательские теги позволяют перенаправлять обратно в тело, что вы действительно не сможете сделать в JSP очень легко.

  • Из Freemarker вы все равно можете использовать каждую библиотеку тегов JSP без проблем:)

Ответ 3

Я считаю, что вы уже пошли на тот или другой вариант. В любом случае, комментарий может быть полезен другим. Как писал WhiteFang, использование MVC является единственным рекомендуемым предложением.

Если ваше приложение основано на веб-интерфейсе, JSP, скорее всего, станет лучшим вариантом, так как он более известен, и можно написать довольно чистый код представления с помощью JSTL (просто убедитесь, что вы не смешиваете скриптлеты... все данные должны быть подготовлены в сервлетах и ​​переданы JSP в качестве атрибутов). Выбирая JSP, вы приносите значение проекту, позволяя менеджерам легко подключать другие разработчики, когда это необходимо для доставки быстрее и т.д.

В любом случае, поскольку у вас уже есть это на FreeMarker, если шаблон выглядит нормально, я бы не изменил его. Скорее дожидайтесь, когда у вас есть причина для переключения. Каким бы хорошо ни было приложение, оно в конечном итоге должно быть частично или даже полностью заперто. Пока вы выполняете модульное программирование и сохраняете свою трансформацию в изолированном модуле, вы сможете в любое время легко переключиться на любую технологию, которую вы сочтете нужным (потенциально новая, лучше FreeMarker или JSP:)).

Обычно я использую FreeMarker для не веб-приложений. Или даже в веб-приложениях, когда мне нужно, например, генерировать электронные письма с уведомлением, которые не должны быть включены в сеть. В противном случае JSP отлично работает до сих пор.

Стеф.

Ответ 4

Есть несколько библиотек, которые были вокруг JSP, таких как JSTL, DisplayTag и т.д., которые вы можете использовать, если вы решите пойти с JSP. С Freemarker их не так много.

JSP предназначен для веб-страниц, FTL - более общий язык шаблонов - он может использоваться для генерации html, обычного текста, электронных писем и т.д.

Чтобы выбрать один, вы должны рассмотреть, какие инструменты у вас есть. Все хорошие Java-IDE имеют отличную поддержку JSP. Поддержка FTL может/не так хороша.