Как описано в документации, BeanNameViewResolver
разрешает View
s, объявленные как bean-компоненты.Обычно это требуется для некоторых специальных представлений.
Представьте, например, что один из ваших контроллеров должен отображать электронную таблицу Excel.Таким образом, вы создаете подкласс AbstractExcelView
и реализуете свою собственную логику для визуализации электронной таблицы на основе значений модели:
public class MyExcelView extends AbstractExcelView { ... }
и объявляете ее как bean-компонент:
<bean id = "myExcelView" class = "MyExcelView" />
Затем объявляете BeanNameViewResolver
делает его доступным для контроллеров: когда контроллер возвращает ModelAndView
с именем представления myExcelView
, ваша электронная таблица будет визуализирована.
BeanNameViewResolver
обычно используется в сочетании с каким-либо другим распознавателем представления, который обрабатывает «обычный»"views (так что если BeanNameViewResolver
не может найти представление, другой распознаватель пытается его найти):
<bean class = "...BeanNameViewResolver">
<property name = "order" value = "0" />
</bean>
<bean class = "...InternalResourceViewResolver">
<property name = "order" value = "1" />
...
</bean>