Spring Компоненты MVC и UI

Я нахожусь в фазе "выбора технологий" небольшого одностраничного веб-приложения, которое будет сильно основано на AJAX и будет сообщаться на бэкэнд Java.

В предыдущем вопросе, который я опубликовал несколько недель назад, сообщество SO в целом сильно убеждалось, что мне лучше будет работать с веб-приложением Spring MVC, чем с чем-то в JSF. Поскольку Spring ориентирован на запрос и JSF является компонентно-ориентированным, было бы разумно использовать Spring для чего-то, что будет получать много асинхронных запросов.

Если бы я шел по маршруту JSF, то мой следующий набор решений заключался бы в том, следует ли использовать так называемые библиотеки компонентов пользовательского интерфейса для технологии просмотра, такие как PrimeFaces, IceFaces или MyFaces.

Итак, мне интересно: Имеет ли Spring MVC что-то подобное, например, PrimeFaces (или его нравится) для создания компонента представления для моей страницы? Я знаю, что он не основан на компонентах, но я не так хорошо знаком с веб-платформой Spring MVC, и мне было интересно, какие стандарты де-факто (если есть) или типичные стеки технологий, которые веб-разработчики Spring используют для создания приятных веб-страниц.

И если Spring просто использует движки шаблонов run-o-the-mill, может быть что-то вроде Freemarker?

Я предполагаю, что это вопрос "наилучшей практики" для начинающего веб-разработчика Spring.

Спасибо заранее!

Ответ 1

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

Поскольку вы решили пойти на ориентированную на запрос структуру, было бы разумнее использовать некоторые известные клиентские библиотеки JavaScript. Популярные варианты:

Лично, если мне не нужно много стандартных готовых виджетов, мне нравится Backbone.js + underscore.js + jQuery. Мне не нравится Google Web Toolkit, поскольку мне кажется, что я пишу pidgin JavaScript, и в этот момент я предпочитаю писать JavaScript напрямую.

Ответ 2

Да, JSF ориентирован на компоненты и Spring MVC ориентирован на запрос. Я рекомендую вам взглянуть на двигатель Thymeleaf Template, который является полной заменой JSP Engine .... Особенности Thymeleaf:

  • Это позволяет создавать естественные шаблоны.
  • Поддержка HTML5
  • Более высокая производительность за счет использования в кешировании памяти

Нажмите здесь для получения более подробной информации

Ответ 3

Кроме того, что упоминалось в Ludovico Fischer, если мы рассмотрим тот же вопрос в современном технологическом мире, что вы можете использовать одну из самых мощных вещей последнего мира: Angular. Есть 2 сценария сценария.

  • Если ваша архитектура является полной клиентской стороной: интеграция для нее очень естественна. Spring MVC выставляет вашу службу как REST (JSON/XMl...), а ваше клиентское приложение с Angular JS потребляет ваш JSON. Здесь военное приложение (Spring mvc) должно быть развернуто в контейнере Servlet (Tomcat), и ваше клиентское приложение может быть развернуто на том же сервере или на другом сервере Nginx, Apache и т.д.
  • Если вы хотите сохранить генерации страниц на стороне сервера и использовать AngularJS для некоторых хороших манипуляций с DOM, чтобы ваш код был развернут в той же войне (WEB-INF). Смешивание двух подходов не всегда является хорошей идеей. Вы можете попробовать thymeleaf, чтобы оставаться на серверной странице.

    Таким образом, вы можете одновременно использовать классные функции Angular, такие как шаблонирование, тестируемость и чистый код просмотра.

Ответ 4

Вот еще один подход (не JSF), чтобы Spring MVC работал с компонентами UK UI - Богатое веб-приложение с Spring MVC CRUD Demo

В этой статье он использовал контроллер Spring MVC для связи с компонентами UK UI. (все в Java-коде)