Вопрос-ответ

What components are MVC in JSF MVC framework?

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

В JSF MVC Framework кто является моделью, представлением и контроллером?

Переведено автоматически
Ответ 1

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

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

M - уровень бизнес-домена / сервиса (например, EJB / JPA / DAO)

V - Ваш код JSF

C - FacesServlet

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

M - Entity

V - Facelets / страница JSP

C - управляемый компонент

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

M - дерево компонентов JSF

V - Визуализированный вывод HTML

C - Клиент (веб-браузер)

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

M - HTML DOM tree

V - Визуальное представление

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

Итак, по сути, это M (M (MVC) C) C) C ;)

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

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

В книгах Окончательное руководство по JSF в Java EE 8, глава 8 "Вспомогательные компоненты", стр. 276, и Окончательное руководство по Jakarta Faces в Jakarta EE 10, глава 8 "Вспомогательные компоненты", стр. 288, приведенная ниже диаграмма Венна используется для иллюстрации положения вспомогательного компонента в парадигме MVC в контексте, соответствующем разработчику JSF. Отказ от авторских прав: вышеупомянутые книги написаны мной, и картинка создана мной.

введите описание изображения здесь

Ответ 2

M odel был бы вашим ManagedBean

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

C ontroller будет FacesServlet

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

введите описание изображения здесь

Ответ 3

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

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

Ответ 4

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


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


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


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


Поток MVC-

введите описание изображения здесь

java