Рекомендуемый шаблон проектирования Java / AJAX? - PullRequest
2 голосов
/ 07 ноября 2008

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

Является ли наш способ делать вещи выше ОК? Или есть другой предпочтительный способ?

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

Спасибо

SP

Ответы [ 2 ]

2 голосов
/ 07 ноября 2008

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

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

0 голосов
/ 07 ноября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...