Spring MVCで複数のビューリゾルバーの優先度を構成する
問題
多くの場合、Spring MVCアプリケーションでは、ビュー名を解決するためのビューリゾルバー戦略をほとんど適用しない場合があります。 たとえば、InternalResourceViewResolver、ResourceBundleViewResolver、XmlViewResolverの3つのビューリゾルバを組み合わせます。
/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)