Springを使い始めたばかりです。私は多くのチュートリアルに出くわしました。InternalResourceViewResolverよりも多くの使用例を見ましたUrlBasedViewResolver。Spring のドキュメントを見ましたが、どちらを使用するメリットがわかりません。誰かが説明を提供できますか?
3 に答える
Spring は、幅広いビュー技術をサポートしています。ViewResolvers は、サポートされている既知のビュー テクノロジをアプリケーションにプラグインするために用意されています。
UrlBasedViewResolverURLは、パターンを対応するファイル名に一致させることによって、さまざまなテクノロジのビューを単純に解決するシンプルなビュー リゾルバーです。
UrlBasedViewResolverタイプ「 AbstractUrlBasedView 」のすべてのビュー技術をサポートするためにここにあります。
AbstractJasperReportsView, AbstractPdfStamperView, AbstractTemplateView, InternalResourceView, RedirectView,TilesViewはXsltViewの既知のサブクラスですAbstractUrlBasedView。
したがって、使用しているUrlBasedViewResolver場合は、 のサブクラスのいずれかをAbstractUrlBasedViewビュー テクノロジのタイプとして使用できます (対応する viewClass のみを設定することにより)。
InternalResourceViewResolverは のサブクラスですUrlBasedViewResolver。
しかしInternalResourceViewResolver、 (の便利なサブクラスである) を使用している場合は、ビュー テクノロジとしてUrlBasedViewResolvertype のテクノロジのみを使用できます。InternalResourceView
これはあなたの質問に答えると思います。
InternalResourceViewResolverの実際のサブクラスですUrlBasedViewResolver。
UrlBasedViewResolver- ビュー名は URL に直接解決されます。明示的なマッピングは提供されません。prefixビュー名は URL 自体になるか、設計に従ってまたはを追加できsuffixます。また、「redirect:」および「forward:」のプレフィックスを付けて、リクエストをリダイレクトおよび転送することもできます。
InternalResourceViewResolver- InternalResourceView をサポートする UrlBasedViewResolver のサブクラス。ラップ JSP または同じ Web アプリのInternalResourceView他のリソース。EL を使用して JSP 内のモデルにアクセスできます。
注: 一部の URLBasedViewResolver (Tiles、Velocity、Freemarker) は、リソースが存在するかどうかを確認し、null を返します。そのため、ビュー リゾルバ チェーンのどこにでも配置できます。その他は最後にする必要があります (JSTL/JSP、XSLT、JSON)
したがってInternalResourceViewResolver、実際のリソースが存在するかどうかに関係なくビュー名を解決するため、ビューリゾルバーのチェーンの最後にする必要があります。
他のいくつかの URLBasedViewReolver は
- InternalResourceViewResolver
- VelocityViewReolver
- FreeMarkerViewReolver
- ThymeleafViewResolver
- XsltViewReolver