Відповіді:
Це залежить від точки зору (каламбур).
У великій архітектурній картині ваш власний код JSF - це V :
M - Домен бізнесу та рівень обслуговування (наприклад, EJB / JPA / DAO)
V - Ваш код JSF
C - FacesServlet
На зображенні розробника архітектурна V у свою чергу ділиться, як показано нижче:
M - Суб'єкт
V - Фасети / JSP сторінка
C - Керована квасоля
На меншій картині клієнта розробник V у свою чергу ділиться, як показано нижче:
M - Дерево компонентів JSF
V - Виведений HTML вихід
C - Клієнт (веб-браузер)
На ще меншому зображенні JavaScript клієнт V у свою чергу ділиться, як показано нижче:
M - дерево DOM HTML
V - Візуальна презентація
C - Функції слухача подій (взаємодія ендусера та Ajax)
Таким чином, це в основному M (M (M (MVC) C) C) C;)
Зауважте, що деякі пускачі та навіть деякі - усі основні - навчальні посібники змішуються / копіюють / вирівнюють властивості об'єкта в керованому бобі, що ефективно робить контролер моделлю. Зайве говорити, що це погана конструкція (тобто не чиста конструкція MVC).
Фрагменти коду в наступних відповідях ілюструють правильний підхід MVC:
У книзі " Поточний посібник з JSF в Java EE 8" , в главі 8 "Збір бобів", сторінка 276, наведена нижче діаграма Венна використовується для ілюстрації положення підкладки в парадигмі MVC у контексті, що стосується розробника JSF. . Відмова від авторських прав: книга написана мною, а зображення створено мною.
<h:inputText value="#{register.username}">
замість <h:inputText value="#{register.user.name}">
.
М одель був би твоїмManagedBean
V iew jsp
, XHTML
(добре, тут ви можете розмістити різні погляди)
C ontroller будеFacesServlet
Оновіть, сподіваюсь, ця картинка допомагає більше
FacesServlet
це контролер, ніж я не можу його розширити. У мене немає власних контролерів ... Я погодився би з Шервіном, що керовані боби є контролером. Шервін, як щодо публікації власної альтернативної відповіді?
FacesServlet
яке контролює.
Сервлет обличчя керує життєвим циклом обличчя, тому в цьому сенсі контролер у поєднанні з власним кодом може викликатись протягом кожної фази життєвого циклу
Обличчя сервера Java - це веб-структура MVC, де компоненти MVC наступні,
Модель - це керований клас бобів, позначений за допомогою @ManagedBean, який має властивості зберігати дані та відповідні геттери та сетери. Керований клас квасолі також може містити ділову логіку. Вони також відомі як резервна квасоля, яка може мати різні сфери застосування, як запит, сесія, застосування.
Перегляд - Інтерфейс користувача, показаний клієнтові, тобто файли .xhtml. Він отримує дані від керованої квасолі і подається як відповідь.
Контролер - javax.servlet.webapp.FacesServlet - це централізований клас контролера, який в основному є сервлетом. Будь-який запит, що надходить до JSF, спочатку надходить до контролера FacesServlet. На відміну від JSP, в якому ми пишемо власний клас контролера, у JSF сервлет контролера є фіксованою частиною фреймворку, і ми не пишемо його.
MVC -