Лучшие практики для реализации MVC в управляемых компонентах JSF2 - PullRequest
4 голосов
/ 20 ноября 2010

С ростом сложности веб-проектов, над которыми я работаю, необходимость включения структуры MVC становится все более актуальной. Мои классы моделей хорошо определены, но код вида и контроллера имеет тенденцию смешиваться. Я также использовал довольно тяжелый AJAX на сайте (в основном RichFaces jsFunctions), что немного усложняет ситуацию.

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

Некоторые идеи до сих пор, которые я еще не начал делать

  • Для страницы с тяжелым ajax, имейте bean-компонент 'view' для запоминания выбранных вкладок, выбранных элементов, предоставления отфильтрованных списков данных и т. Д. *
  • Иметь компонент 'controller' для обработки таких действий, как изменения в модели
  • Иметь bean-компоненты 'command', которые идут между страницей JSF и контроллером. Функция jsFunction заполняет командный компонент параметрами, и при вызове command.execute() командный компонент вызывает правильный метод в компоненте контроллера для выполнения действия. Компонент 'command' может включать в себя некоторый JavaScript, который будет вызван по завершении. Он также может указывать регионы страницы, которые будут перерисованы.

Есть мысли?

Редактировать

Чаще всего я вижу управляемые bean-компоненты, которые стремятся делать все : отслеживать выбор пользователей, обновлять модель, получать отфильтрованные списки и т. Д. *

В настоящее время мы используем JSF 1.2 и поэтому не можем использовать action / actionlisteners с параметрами. Так, например, наши управляемые bean-компоненты содержат переменные, такие как m_selectedDate, единственной целью которых является подача выбранной даты в серверную часть при вызове updateFilteredItemsBasedOnDate(). Было бы хорошо, если бы дополнительные переменные могли исчезнуть, так как они просто временные. EL JSF 2 с параметрами должен помочь, но мне любопытно, есть ли альтернативное решение.

Мне любопытно, есть ли способ применить MVC к управляемым bean-компонентам или какой-то метод разделения проблем, чтобы мы не заканчивали большими bean-компонентами, которые пытаются делать все.

Ответы [ 3 ]

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

Вы ищете шаблоны дизайна? Если вы ищете MVC, то BalusC ответ достаточно, в противном случае проверьте это

http://www.allapplabs.com/j2ee_design_patterns/j2ee_design_patterns.htm

Также проверьте это

1 голос
/ 11 июля 2012

Ну, может быть, вам нужна многоуровневая архитектура. Пока что MVC architecure, есть больше проблем. Например, вы можете наложить свою архитектурную архитектуру на слои View, Business Logic и DataAccess, реализуя большинство общих и корпоративных шаблонов на каждом уровне.

Вы начали с того, что один из них внедряет MVC, но это хорошая практика с точки зрения "разделения интересов"

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

Надеюсь, это краткое объяснение было полезным.

Привет.

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

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

Как сказал Balusc в комментариях, сам JSF имеет достаточно MVC для вашего приложения.Может быть, если вы захотите разделить проблемы, рекомендуется разделить бизнес-логику на классы Helper и написать в бинах только логику представления.

Спорят о том, следует ли использовать компонент для бизнес-логики.или следует отделить его от управляемого компонента.Это все зависит от вашего приложения и конкретного домена.

Спасибо, Кришна

...