Я изучаю Struts2 в действии и узнаю, что контроллер в Struts2 является FilterDispatcher
и Model - Action. Но ранее я знал, что Action и FilterDispatcher
оба являются контроллерами, а Struts не поддерживает слой модели. Какой из перечисленных выше ошибок?
Я бы сказал, что FilterDispatcher - это FrontController, а Action - это модель и контроллер в одном классе.
Фактически действия Struts2 являются делегатами контроллера. И Struts2 предоставляет стек значений на уровне представления, который имеет лучшую поддержку, и если вы хотите использовать псевдомодуль, тогда действие должно реализовать интерфейс ModelDriven
. Следует также отметить, что действия Struts2 - это простые POJO, управляемые контейнером Struts2. Это немного отличается в точке зрения MVC, также известной как MVC Model2. Например, описание модели, представленной wikipedia:
Центральный компонент MVC, модель, фиксирует поведение приложения в терминах его проблемной области, независимо от пользовательского интерфейса. [5] Модель напрямую управляет данными, логикой и правилами приложения.
Похоже, что модель определяется извне и, вероятно, управляется уровнем сохранения. Контроллер Struts2 работает с моделью через своих делегатов.
Представление может представлять собой любое выходное представление информации, например диаграмму или диаграмму; возможны множественные представления одной и той же информации, такие как гистограмма для управления и табличное представление для бухгалтеров.
В Struts2 представление является результатом, возвращаемым контроллером в объекте ответа. Struts2 может использовать разные типы результатов и шаблоны для получения ответа.
Контроллер принимает вход и преобразует его в команды для модели или вида [6].
Struts2 использует запрос для ввода, который обрабатывается контроллером для поиска соответствующего делегата, который может работать с бизнес-моделью напрямую или на уровне сервиса.
Чтобы ответить на ваш вопрос, имея в виду, что здесь сказано, ваше последнее утверждение ближе к истине. Struts2 может помочь вам с контроллером и представить представление, но это не поможет вам создать модель. Тем не менее, есть много других фреймворков, которые это делают, например Hibernate, которые вы можете использовать с Struts2 для завершения отсутствия компонента MVC в вашем приложении.