Какие компоненты являются 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, поэтому в этом смысле это контроллер в сочетании с вашим собственным кодом, который может вызываться на каждом этапе жизненного цикла
Java Server Faces - это веб-фреймворк MVC, в котором компоненты MVC следующие,
Модель - это класс управляемого компонента, аннотированный @ManagedBean, который обладает свойствами для хранения данных и соответствующими способами получения и установки. Класс управляемого компонента также может содержать бизнес-логику.Они также известны как вспомогательные компоненты, которые могут иметь разные области действия, такие как запрос, сеанс, приложение.
View - пользовательский интерфейс, показываемый клиенту, т.е. файлы .xhtml. Он получает данные из управляемых компонентов и отображает их как ответ.
Контроллер - javax.servlet.webapp.FacesServlet - это класс централизованного контроллера, который по сути является сервлетом. Любой запрос, поступающий в JSF, сначала направляется контроллеру FacesServlet. В отличие от JSP, в котором мы пишем наш собственный класс контроллера, в JSF сервлет контроллера является фиксированной частью фреймворка, и мы его не пишем.