Какие компоненты являются MVC в рамках JSF MVC?

В рамках JSF MVC кто такие Модель, Представление и Контроллер?

3 ответа

Решение

Это зависит от точки зрения (каламбур).

В большой архитектурной картине ваш собственный код JSF - это V:

M - бизнес-домен / сервисный уровень (например, EJB / JPA / DAO)
V - Ваш код JSF
C - FacesServlet

На изображении разработчика архитектурный V в свою очередь делится, как показано ниже:

М - Сущность
V - страница Facelets/JSP
C - Управляемый боб

На меньшем изображении клиента разработчик V, в свою очередь, делится, как показано ниже:

M - дерево компонентов JSF
V - визуализированный вывод HTML
C - Клиент (веб-браузер)

На еще меньшем изображении JavaScript клиент V в свою очередь делится, как показано ниже:

M - дерево HTML DOM
V - Визуальная презентация
C - Функции прослушивателя событий (взаимодействие с конечным пользователем и Ajax)

Так что это в основном M(M(M(MVC)C)C)C;)

Обратите внимание, что некоторые начальные и даже некоторые базовые учебные пособия смешивают / копируют / выравнивают свойства сущности в управляемом компоненте, что фактически делает контроллер моделью. Излишне говорить, что это плохой дизайн (т.е. не чистый дизайн MVC).

Фрагменты кода в следующих ответах иллюстрируют правильный подход MVC:

Модель была бы твоей ManagedBean

Vew будет jsp, XHTML (хорошо вы можете разместить различные виды здесь)

Контроллер будет FacesServlet

Обновление, надеюсь, эта картина поможет больше

Сервлет Face управляет жизненным циклом Faces, поэтому в этом смысле именно контроллер в сочетании с вашим собственным кодом может вызываться на каждом этапе жизненного цикла.

http://www.java-samples.com/images/jsf-lifecycle.gif

Java Server Faces - это веб-инфраструктура MVC, где компоненты MVC выглядят следующим образом:

  1. Модель - это класс управляемого компонента, аннотированный @ManagedBean, который имеет свойства для хранения данных и соответствующих методов получения и установки. Класс управляемого компонента также может содержать бизнес-логику. Они также известны как резервные компоненты, которые могут иметь различные области действия, такие как запрос, сеанс, приложение.

  2. Вид - пользовательский интерфейс, отображаемый для клиента, т.е. файлы.xhtml. Он получает данные из управляемых bean-компонентов и отображается как ответ.

  3. Контроллер - javax.servlet.webapp.FacesServlet - это класс централизованных контроллеров, который в основном является сервлетом. Любой запрос, который приходит к JSF, сначала направляется в контроллер FacesServlet. В отличие от JSP, в котором мы пишем свой собственный класс контроллера, в JSF сервлет контроллера является фиксированной частью фреймворка, и мы его не пишем.

MVC flow-

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