Spring MVCで複数のリゾルバの優先度を設定する

Spring MVCで複数のビューリゾルバーの優先度を構成する

問題

多くの場合、Spring MVCアプリケーションでは、ビュー名を解決するためのビューリゾルバー戦略をほとんど適用しない場合があります。 たとえば、InternalResourceViewResolverResourceBundleViewResolverXmlViewResolverの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)