2013-12-20 3 views
0

Мне нужно создать веб-сайт в шаблоне MVC.В архитектуре MVC можно ли «просмотреть» доступ к модели?

У меня есть «showuser.jsp» вид, что я могу получить доступ к модели (DAO) для того, чтобы получить все пользователи,

или мой контроллер должен передать эту информацию на мой взгляд?

+0

Какую структуру вы используете? Не изобретайте велосипед. – Santosh

+0

_my контроллер должен передать эту информацию моему представлению_ да, это должно, это цель MVC.Ваш взгляд должен знать только о контроллере, он должен координировать работу с моделями и другими. –

+0

@Santosh Отметьте это, 'Hibernate'. – Billie

ответ

3

Типичная последовательность потока MVC выглядит следующим образом

  1. User посылает запрос на просмотр страницы
  2. Controller получает запрос
  3. Controller запрашивает Model для данных
  4. Model возвращает данные (Список пользователей в случае)
  5. Controller передает эти данные в выбранном View (showuser.jsp) (обычно в качестве атрибута запроса/сеанса)
  6. View визуализируется и возвращается в Пользователь.

Это хорошо показано на следующем рисунке:

enter image description here

Я надеюсь, что это ответы на ваши вопросы.

+0

Отличный ответ! НО: Если пользователь отправляет запрос на просмотр, как контроллер может его получить? – Billie

+0

Вы всегда запрашиваете «Просмотр», но именно этот URL-адрес запроса сопоставляется с «Контроллером», поэтому он всегда получает запрос первым. 'Controller' _knows_, которые видят для отправки клиенту. Таким образом, как только он получил данные от модели, он устанавливает данные и перенаправляет запрос на настроенный «Просмотр». – Santosh

0

Это должно быть бесшовным. В представлении не должно быть известно о модели как таковой, но она должна передаваться через контроллер. Общей методикой Spring MVC является передача объекта спящего режима через контроллер, который затем будет преобразован в JSON.

После этого объект View будет визуализировать этот объект JSON и проанализировать его соответствующим образом. В вашем примере ваш контроллер может передать в список список объектов User, которые вы могли бы проанализировать, если это был массив объектов JSON.

В вашем представлении должен быть указан контроллер, который возвращает ответ с уровня DAO или Service (в зависимости от требований вашей бизнес-логики).

1

Обычно контроллер заполняет модель для представления (JSP).

Контроллер должен вызывать DAO (даже лучше, если у вас есть уровень обслуживания, где реализована вся бизнес-логика. Затем контроллер вызывает службу, которая может иметь один или режим DAO). И сохраните информацию в модели, которая будет представлена ​​на jsp.

+0

Как информация должна передаваться с контроллера на представление? – Billie

+0

Просто включите параметр модели в метод контроллера и сохраните данные в модели. – StanislavL

0

В шаблоне MVC model и view не должны знать друг о друге. model и view связаны вместе controller. Таким образом, controller должен пройти model до view.

Для того, чтобы поместить его, а просто в коде:

class View{} 

class Model{} 

class Controller{ 
    View view = new View(); 
    Model model = new Model(); 

    public void controllerMethod(){ 
     //pass model to view 
    } 
} 
Смежные вопросы