Что такое по умолчанию распознаватель Spring 3? - PullRequest
7 голосов
/ 07 июля 2011

Я прочитал документы Spring 3 о преобразователях представлений ... Но в моем проекте я не определил ни одного.Я просто возвращаю строку ModelAndView или @ResponseBody из методов контроллера.Я думаю, что есть преобразователь представления по умолчанию (возможно, UrlBasedViewResolver), который уже настроен.Что это такое?Где я могу получить информацию в документации об этом?

Если я хочу добавить другие представления, такие как JsonView или XmlView (сейчас я использую Jsp, который отображает данные, но я читаю, что могу избежатьэто путем передачи объектов модели непосредственно в специальные представления, которые будут делать это для меня) как мне работать с этим определителем представлений по умолчанию?

1 Ответ

10 голосов
/ 07 июля 2011

По умолчанию автоматически регистрируется InternalResourceViewResolver (UrlBasedViewResolver является абстрактным суперклассом этого).

Если вы объявите свой собственный преобразователь (и) представления, то по умолчанию InternalResourceViewResolver не будет использоваться. Вы можете, если хотите, просто объявить его как явный компонент. Если имеется несколько распознавателей вида, то с ними будут консультироваться по порядку, пока один из них не вернет объект представления. Однако из-за того, как работает API сервлета, InternalResourceViewResolver должен всегда быть последним распознавателем представления в цепочке.

Если ваш метод контроллера возвращает объект View напрямую, тогда преобразователь представления не требуется, и представление будет отображено напрямую. Точно так же, если вы используете @ResponseBody, преобразователь представления будет обойден.

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