Springを使い始めたばかりです。私は多くのチュートリアルに出くわしました。InternalResourceViewResolver
よりも多くの使用例を見ましたUrlBasedViewResolver
。Spring のドキュメントを見ましたが、どちらを使用するメリットがわかりません。誰かが説明を提供できますか?
3 に答える
Spring は、幅広いビュー技術をサポートしています。ViewResolvers は、サポートされている既知のビュー テクノロジをアプリケーションにプラグインするために用意されています。
UrlBasedViewResolverURL
は、パターンを対応するファイル名に一致させることによって、さまざまなテクノロジのビューを単純に解決するシンプルなビュー リゾルバーです。
UrlBasedViewResolver
タイプ「 AbstractUrlBasedView 」のすべてのビュー技術をサポートするためにここにあります。
AbstractJasperReportsView
, AbstractPdfStamperView
, AbstractTemplateView
, InternalResourceView
, RedirectView
,TilesView
はXsltView
の既知のサブクラスですAbstractUrlBasedView
。
したがって、使用しているUrlBasedViewResolver
場合は、 のサブクラスのいずれかをAbstractUrlBasedView
ビュー テクノロジのタイプとして使用できます (対応する viewClass のみを設定することにより)。
InternalResourceViewResolverは のサブクラスですUrlBasedViewResolver
。
しかしInternalResourceViewResolver
、 (の便利なサブクラスである) を使用している場合は、ビュー テクノロジとしてUrlBasedViewResolver
type のテクノロジのみを使用できます。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