Подтвердить что ты не робот

Что отличается между InternalResourceViewResolver и UrlBasedViewResolver

Я только начал использовать Spring. Я наткнулся на множество учебников. Я видел больше примеров, используя InternalResourceViewResolver, чем UrlBasedViewResolver. Я посмотрел документацию Spring, но я не могу понять, как использовать тот или иной. Может ли кто-нибудь дать какое-то объяснение?

4b9b3361

Ответ 1

InternalResourceViewResolver является удобным подклассом UrlBasedViewResolver.

JavaDoc описывает некоторые добавленные свойства в InternalResourceViewResolver, которые могут быть полезны в некоторых ситуациях:

Удобный подкласс UrlBasedViewResolver, который поддерживает InternalResourceView (т.е. сервлеты и JSP) и подклассы, такие как JstlView.

AlwaysInclude: контролирует, выполняется ли переадресация или добавление.

ExposeContextBeansAsAttributes: Позволяет всем beans в контексте быть доступным в качестве атрибутов запроса, что означает, что они могут ссылаться на EL в JSP.

ExposedContextBeanNames: Если не null, указывает список beans, который будет отображаться, в отличие от всех из них.

Источник из spring forum: Spring Q & форум

Ответ 2

Spring поддерживает широкий спектр технологий просмотра. ViewResolvers здесь, чтобы подключить любую из известных поддерживаемых технологий просмотра в ваше приложение.

UrlBasedViewResolver - это простой просмотрщик представлений, который просто разрешает представления разных технологий, сопоставляя шаблоны URL с соответствующими именами файлов.

UrlBasedViewResolver здесь, чтобы поддерживать все технологии просмотра типа " AbstractUrlBasedView".

AbstractJasperReportsView, AbstractPdfStamperView, AbstractTemplateView, InternalResourceView, RedirectView, TilesView, XsltView являются известными подклассами AbstractUrlBasedView.

Поэтому, когда вы используете UrlBasedViewResolver, вы можете использовать любой из подклассов AbstractUrlBasedView как тип вашей технологии просмотра (путем установки только соответствующего viewClass).

InternalResourceViewResolver является подклассом UrlBasedViewResolver.

Но когда вы используете InternalResourceViewResolver (что является удобным подклассом UrlBasedViewResolver), вы можете использовать технологию типа InternalResourceView в качестве вашей технологии просмотра.

Я думаю, что это отвечает на ваш вопрос.

Ответ 3

InternalResourceViewResolver - это подкласс подкласса UrlBasedViewResolver.

UrlBasedViewResolver - Просмотр имени напрямую разрешен для URL. Явное отображение не предоставляется. Имя вида будет само по себе или вы можете добавить prefix или suffix в соответствии с вашим дизайном. Вы также можете префикс как "перенаправление:" и "переслать" для перенаправления и пересылки вашего запроса.

InternalResourceViewResolver - Подкласс UrlBasedViewResolver, который поддерживает InternalResourceView. InternalResourceView обертывает JSP или какой-либо другой ресурс одного и того же веб-приложения. Вы можете получить доступ к моделям в JSP, используя EL.

ПРИМЕЧАНИЕ. Некоторые URLBasedViewResolvers (Tiles, Velocity, Freemarker) проверяют, существует ли ресурс и возвращает значение null. Таким образом, они могут быть где угодно в цепочке распознавания зрения. Другие должны быть последними (JSTL/JSP, XSLT, JSON)

Итак, InternalResourceViewResolver должен быть последним в цепочке видных преобразователей, поскольку он разрешает имя представления, присутствует ли фактический ресурс или нет.

Некоторые другие URLBasedViewReolver s

  • InternalResourceViewResolver
  • VelocityViewReolver
  • FreeMarkerViewReolver
  • ThymeleafViewResolver
  • XsltViewReolver