Рекомендуемый шаблон проектирования Java / AJAX?

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

Рассмотрим простой сценарий:

  1. Пользователь нажимает кнопку, которая отправляет запрос методу Java для извлечения данных из БД.
  2. Объект Java возвращается методом и должен быть преобразован в таблицу HTML.
  3. Таблица HTML отображается на JSP.

Чем мы сейчас занимаемся:

  1. На странице JSP пользователь нажимает кнопку «Показать пользователей».
  2. Кнопка, использующая Prototype.js, вызывает JSP «посредника», который перенаправляет запрос методу Java для получения данных из БД.
  3. Метод возвращает объект Java "посреднику" JSP, который преобразует объект Java в HTML (поскольку вызов AJAX из вызывающего JSP не сможет напрямую обработать объект Java).
  4. Затем HTML возвращается к вызову Prototype, который обновляет div в вызывающем JSP.

Наши заботы:

  1. Мы хотели бы сохранить разделение бизнес-логики и логики представления и предпочли бы отсутствие кода HTML / JavaScript внутри наших методов Java.
  2. Имея в виду (1), можно ли сделать это с помощью JSP-посредника? Или мы должны вернуть объект Java как XML / XSLT в запрос AJAX?
  3. В описанном выше способе очень мало JavaScript, и он работает во всех браузерах.
  4. Мы посмотрели на некоторые другие пакеты - DWR, GWT, но либо они слишком сильно зависели от JavaScript, либо в классах Java требовались компоненты пользовательского интерфейса.

Нормален ли наш способ делать что-то выше? Или есть другой способ предпочтительнее?

Любая помощь / мысли будут оценены.

Спасибо,

SP

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
0
798
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Звучит неплохо. Вы отделяете компоненты вида от компонентов модели. Не имеет значения, как поступает вызов на сервер, AJAX или нет, он должен быть получен контроллером (скажем, сервлетом), который взаимодействует с моделью, то есть вашими Java-классами, которые получают данные из базы данных и пересылают их в Страница JSP для рендеринга представления.

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

Не уверен, заметили ли вы, но есть одно существенное различие между вашим решением и тем, что предложил Винсент. Это значит, что запрос должен быть первоначально получен сервлетом (или контроллером, или действием Struts и т. д.), А не «посредником» JSP.

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

Дон, да, я поймал это ... мы тоже планировали пойти по этому маршруту. Тем не менее, спасибо за продолжение. С уважением, ИП

spie 07.11.2008 08:58

Другие вопросы по теме