Архитектура приложения AJAX MVC - PullRequest
4 голосов
/ 30 декабря 2010

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

  • У меня есть сервлет контроллера "controller.java", который читает путь сервлета, т. Е. request.getServletPath(), чтобы определить требуемое действие
  • У меня есть несколько различных Enterprise Java Bean (EJB 3.1), которые обрабатывают бизнес-логику и которые вызываются моим сервлетом контроллера в зависимости от запрошенного действия
  • У меня есть несколько представлений, которые относятся к различным аспектам моего приложения, которым запрос пересылается (сервлетом контроллера) на основании запрошенного действия (т. Е. request.getRequestDispatcher(url).forward(request, response);)

Я понимаю, что текущая архитектура может поддерживать функциональность AJAX (путем сопоставления с шаблоном из моего сервлета controller.java), но я дошел до того, что мой контроллер поддерживает огромное количество действий, и он грязный.

У кого-нибудь есть предложения? Есть ли стандартный шаблон для этого? Я пытаюсь оставаться свободным от каких-либо рамок только сейчас, поскольку я относительный новичок! : -)

Спасибо

Ответы [ 3 ]

3 голосов
/ 30 декабря 2010

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

Один из возможных способов рефакторинга - это сгруппировать контроллеры в модули .

0 голосов
/ 31 декабря 2010

Та же идея с BalusC.

У нас есть приложение MVC, которое запускается само по себе. Теперь, чтобы добавить функциональность AJAX, мы добавили JQuery и использовали jqGrid на уровне представления. Он связывается с бэкэндом через AJAX. Если мы удалим JQuery и jqGrid, у нас останется полностью работающее приложение MVC.

Я поместил демонстрацию этого на http://krams915.blogspot.com/2010/12/jqgrid-and-spring-3-mvc-integration. Здесь мы интегрировали Spring MVC 3 и jqGrid / JQuery

0 голосов
/ 31 декабря 2010

Вы можете проверить запросы ajax следующим образом:

boolean ajax = "XMLHttpRequest".equals(request.getHeader("X-Requested-With"));

, а затем соответственно обработайте ответ. То есть возврат идентификатора представления, который должен использоваться в пересылке или перенаправлении, или возврат некоторого JSON, который затем должен быть записан в тело ответа, или возврат специального объекта View, который содержит информацию такого рода. Учитывая этот базовый пример MVC , не должно быть так сложно расширить его с поддержкой ajax.

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