2013-07-03 34 views
23

春を使い始めました。私は多くのチュートリアルに出くわしました。 InternalResourceViewResolverを使用した例が、UrlBasedViewResolverよりも多く見受けられました。私はSpringのドキュメントを見ましたが、どちらかを使用する利点を理解できません。誰かが何らかの説明をしてくれますか?InternalResourceViewResolverとUrlBasedViewResolverの相違点

答えて

16

InternalResourceViewResolverは、UrlBasedViewResolverの便利なサブクラスです。

Javadocは、いくつかの状況で有用であるかもしれないInternalResourceViewResolverにおけるいくつかの追加の特性を説明:例えばJstlViewとしてInternalResourceView(すなわち、サーブレットおよびJSP)およびサブクラスをサポートUrlBasedViewResolverの

便利サブクラス。

AlwaysInclude:フォワードまたはインクルードのどちらを行うかを制御します。

ExposeContextBeansAsAttributes:コンテキスト内のすべてのBeanをリクエスト属性として使用できます。つまり、JSPのELから参照できます。

ExposedContextBeanNames:nullでない場合、すべてのものではなく、公開されるBeanのリストを指定します。春のフォーラムから

出典:Spring Q&A forum

8

Springは、幅広い視野技術をサポートしています。 ViewResolversは、既知のサポートされているビューテクノロジをアプリケーションにプラグインするためのものです。

UrlBasedViewResolverは、対応するファイル名にURLのパターンをマッチさせることによって、単に異なる技術のビューを解決する単純なビューリゾルバです。

UrlBasedViewResolverは、タイプ「AbstractUrlBasedView」のすべての表示技術をサポートするためのものです。

AbstractJasperReportsViewAbstractPdfStamperViewAbstractTemplateViewInternalResourceViewRedirectViewTilesViewXsltViewAbstractUrlBasedViewの既知のサブクラスです。

UrlBasedViewResolverを使用している場合は、AbstractUrlBasedViewというサブクラスのいずれか1つをビューテクノロジのタイプとして使用できます(対応するviewClassのみを設定します)。

InternalResourceViewResolverUrlBasedViewResolverのサブクラスです。

InternalResourceViewResolver(便利なサブクラスUrlBasedViewResolver)を使用している場合は、表示技術としてタイプInternalResourceViewのテクノロジしか使用できません。

私はこれがあなたの質問に答えたと思います。

4

InternalResourceViewResolverUrlBasedViewResolverのInfactはサブクラスです。

UrlBasedViewResolver - ビュー名はURLに直接解決されます。明示的なマッピングは提供されません。ビュー名はURL自体であるか、デザインごとにprefixまたはsuffixを追加できます。"redirect:"と "forward:"という接頭辞を付けて、リクエストをリダイレクトして転送することもできます。

InternalResourceViewResolver - InternalResourceViewをサポートするUrlBasedViewResolverのサブクラスです。 InternalResourceViewは、同じWebアプリケーションのJSPまたは他のリソースをラップします。 ELを使用してJSP内のモデルにアクセスできます。

注::URLBasedViewResolvers(Tiles、Velocity、Freemarker)は、リソースが存在するかどうかをチェックしてnullを返します。ビューリゾルバチェーンのどこにでも置くことができます。他のものは最後でなければなりません。

したがってInternalResourceViewResolverはビューリゾルバのチェーン内で最後になる必要があります。実際のリソースが存在するかどうかをビュー名で解決するからです。

他のいくつかのURLBasedViewReolverのある

  1. InternalResourceViewResolver VelocityViewReolver
  2. FreeMarkerViewReolver
  3. ThymeleafViewResolver
  4. XsltViewReolver
関連する問題