Быстрый Spring MVC вопрос: если я не верну модель, почему я все еще могу визуализировать представление через ответ? - PullRequest
2 голосов
/ 27 августа 2010

Я могу использовать: return new ModelAndView(viewName, model);

Или я использую:

response.setContentType("text/plain");
response.getWriter().print("Hello World!");

Теперь, в чём разница в дизайне, кроме того, что во втором решении мне не нужна JSP Но я мог бы также вывести флэстрим, верно?

Может быть, мне просто нужно немного больше понимания. Надеюсь, что некоторые из вас могут помочь! Спасибо!

Ответы [ 2 ]

2 голосов
/ 27 августа 2010

MVC о разделении проблем. Таким образом, у вас есть три компонента для каждого взаимодействия запрос / ответ. Сами данные, представление для отображения данных и контроллер, который является мастером марионеток.

Это модель, поэтому вы должны использовать три из них, если они применимы (например, если у вас есть статическая страница, у нее вообще нет модели ... у нее нет модели для отображения, только HTML).

В в некоторых случаях вы можете писать прямо с контроллера , позволяя контроллеру выбирать вид и модель. Это полезно в тех случаях, когда нет смысла программировать отдельное представление, как в случае, указанном вами: вывод файла.

В любом случае вы могли бы запрограммировать отдельный вид . Нечто подобное FileOutputView, которое получает файл или путь или поток для вывода. Таким образом, класс, который решит визуализацию, будет отделен от контроллера. Но в этом случае мало что значит быть таким пуристом.

Я уже говорил program , потому что представление отвечает за рендеринг, но это не обязательно должен быть декларативный тип представления, такой как JSP. Конечно, JSP будет в 99% случаев.

0 голосов
/ 27 августа 2010

Да, вы можете выводить любой тип контента.Не забудьте вернуть null в этом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...