Альтернативы JSP для Spring уровня просмотра MVC

Я хочу создать новое приложение с нуля и, вероятно, использовать Spring MVC и, возможно, Spring Web Flow. Проекты, созданные Spring Roo, используют Spring MVC и необязательно Web Flow. Какие хорошие альтернативы для технологии просмотра, или JSP с Spring и JSTL taglibs и jQuery - путь?

Ответ 1

В стандартном Java EE API единственной альтернативой JSP является Facelets. До сих пор (2010) JSF - единственная среда MVC, которая изначально поддерживает Facelets.

Spring MVC поддерживает только JSP, но имеет настраиваемый view resolver, который позволяет использовать Facelets в любом случае. Другие оценщики являются сторонними шаблонами шаблонов, такими как Velocity, Freemarker и Thymeleaf, который можно настроить как технологию просмотра для Spring MVC. Документация Spring имеет примеры интеграции с Velocity и Freemarker.

Ответ 2

Я недавно обнаружил тимелиф.

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

Ответ 3

Недавно я начал работать с простым HTML и jQuery для презентации с Spring MVC, создавая только представление JSON.

Пока все идет хорошо, и хотя мне приходится делать работу с javascript, это значительно облегчает взаимодействие с моим дизайнером и более быстрые изменения времени, когда у него есть изменения, потому что мне не нужно преобразовывать его HTML в мой JSP, Жюри по-прежнему не поддерживает общую работоспособность сайта.

Ответ 4

Документация Springs 3 также предлагает FreeMarker. Freemarker (насколько я могу судить) быстр и имеет некоторую интеграцию с функциями Spring, такими как привязка.

Ответ 5

В Spring MVC вы можете иметь столько технологий просмотра, сколько пожелаете. У меня есть FreeMarker и JSP view resolvers. Когда я сталкиваюсь с мнением, что это слишком сложно во FreeMarker (или просто более удобно в JSP), я создаю представление JSP. Например, Spring с JSTL отлично справляется с обработкой форм. Для этого я использую представления JSP, но для почти всего остального у меня есть представления FreeMarker.

Взгляните на документацию Spring MVC, чтобы узнать, как настроить несколько преобразователей представлений, в основном:

<bean name="freeMarkerViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
   <property name="cache" value="true"/>
   <property name="prefix" value=""/>
   <property name="suffix" value=".ftl"/>
   <property name="order" value="1"/> <!--NOTICE THE ORDER-->
</bean>

<bean id="jspViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <property name="suffix" value=".jsp"/>
    <property name="order" value="2"/> <!--NOTICE THE ORDER-->
</bean>

Ответ 6

Spring MVC обеспечивает интеграцию со многими различными технологиями просмотра . Я бы рекомендовал использовать FreeMarker или Velocity.

Ответ 7

Хотя это старый вопрос, я думал, что предлагаю новую альтернативу, которая Scalate.

Scalate - это powerhouse в параметрах шаблонов. Единственным вероятным является то, что Scalate требует большого количества зависимостей (в то время как для него требуется Scala для него не требуется запись в Scala).

Мой текущий любимый, но Handlebars.java, который имеет интеграцию Spring.

Ответ 8

(Мой предыдущий ответ был плохо отдан здесь.) Freemarker по крайней мере так же хорош, как Velocity. Но Thymeleaf выглядит еще более привлекательным, вместе с макет-диалектом он может сделать ненужными шаблонные рамки, такие как sitemesh и плитки. Для JSF критика Thoughtworks кажется действительной:

Мы продолжаем видеть, что команды сталкиваются с проблемами с использованием JSF - JavaServer Faces - и рекомендуют вам избегать этой технологии. Команды, похоже, выбирают JSF, потому что это стандарт Java EE, не оценивая, подходит ли им модель программирования. Мы считаем, что JSF ошибочен, потому что его модель программирования поощряет использование собственных абстракций, а не полностью охватывает базовую веб-модель. JSF, подобно веб-формам ASP.NET, пытается создать деревья с выраженными компонентами в верхней части HTML-разметки и HTTP-протокол без состояния. Улучшения в JSF 2.0 и 2.2, такие как введение представлений без гражданства и продвижение GET, - это шаги в правильном направлении, возможно, даже подтверждение того, что оригинальная модель была ошибочной, но мы считаем, что это слишком поздно. Вместо того, чтобы иметь дело со сложностью JSF, мы рекомендуем командам использовать простые фреймворки и тесно сотрудничать с веб-технологиями, включая HTTP, HTML и CSS.

Ответ 9

Я использую Stripes и Spring вместе. Полоски практически всегда остаются на вашем пути, но при необходимости Spring приятно, когда вам это нужно.

Ответ 10

Я использую velocity и Spring MVC. Кроме того, я размещаю свое приложение в Google App Engine, и у меня нет проблем.

Ответ 11

Вы также можете использовать Angular (клиентская структура) для своего слоя View в Spring MVC.

Ответ 12

Я думаю, Tiles может вам помочь.
Вы можете определить шаблоны и использовать JSTL внутри.

Ответ 13

Мои предложения состоят в том, чтобы не смотреть в рамки представления, как описано в большинстве вышеперечисленных, которые не были написаны поверх spring MVC, так как вы попадете в такие проблемы, как обратная передача, что означает, что вы не сможете отправить данные из этой технологии просмотра и получить ответ от sever. например, как проверка, редактирование данных, которое обновляется с данными с сервера, НЕ РАБОТАЕТ.

Это связано с тем, что java beans в некоторых вышеописанных технологиях не использует жизненный цикл контейнера spring. Вы сможете использовать их только для чистого запроса примера без учета состояния. например, с JSF вы не сможете использовать postbacks, поскольку postbacks jsf работают только в том случае, если вы используете жизненный цикл jsf, и если вы используете spring framework JSF viewverver с spring mvc, вы не сможете сделать обратную передачу, чтобы вы необходимо заменить контроллер сервлета jsf вместо spring контроллера mvc.

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

одна примерная технология просмотра, написанная на верхней части og spring mvc - это zk-фреймворк zk mvc, в котором вы можете расширить свои контроллеры spring mvc от ZK GenericForwardComposer для обработки событий. Вы всегда можете использовать spring для обработки жизненного цикла этих контроллеров с помощью фреймворка spring.

вы можете найти Google аналогичные другие продукты.

Этот обзор основан на высокоуровневом проектировании жизненного цикла каркаса.

Все самое лучшее!!!

Ответ 14

Вы можете запускать Facelets ontop Spring Webflow

Ответ 15

Как насчет phpj?

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

Я создал phpj, потому что мне не нужно обновлять мое приложение и постоянно загружать его с помощью tomcat, поэтому я могу использовать статические местоположения для своего веб-приложения, используя конфигурации, подобные апаху

Ответ 16

Скорость Apache - хорошая альтернатива серверным страницам Java.