Сконфигурируйте приоритет разрешения нескольких представлений в Spring MVC
проблема
В приложении Spring MVC часто вы можете применить несколько стратегий распознавания представлений для разрешения имени представления. Например, объедините вместе три преобразователя представлений:InternalResourceViewResolver,ResourceBundleViewResolver иXmlViewResolver.
/WEB-INF/spring-views.xml /WEB-INF/pages/ .jsp
Но, если имя представления возвращается, какая стратегия решателя представления будет использоваться?
Решение
Если применяются несколько стратегий преобразования представлений, вы должны объявить приоритет через свойство «order», гдеlower order value has a higher priority, например:
/WEB-INF/spring-views.xml /WEB-INF/pages/ .jsp
Теперь, если имя представления возвращается, стратегия разрешения представления работает в следующем порядке:
XmlViewResolver --> ResourceBundleViewResolver --> InternalResourceViewResolver
Note
InternalResourceViewResolver всегда должен бытьassign with the lowest priority (наибольший порядковый номер), потому что он разрешит представление независимо от того, какое имя представления будет возвращено. Это привело к тому, что другие средства разрешения представления не имеют возможности разрешить представление, если они имеют более низкий приоритет.
Скачать исходный код
Скачать -SpringMVC-ViewResolver-Priority-Example.zip (7KB)