Какие компоненты MVC в структуре JSF MVC?

В структуре JSF MVC, которая является Model, View и Controller?

Ответы

Ответ 1

Это зависит от точки зрения (pun intented).

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

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

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

M - Объект
V - Лицевые стороны/страница JSP
C - управляемый bean

В маленьком клиентском изображении разработчик V в свою очередь делится следующим образом:

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

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

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

Итак, это в основном M (M (M (MVC) C) C) C;)

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

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

Ответ 2

M odel будет вашим ManagedBean

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

C ontroller будет FacesServlet

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

enter image description here

Ответ 3

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

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

Ответ 4

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

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

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

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