クラス UrlBasedViewResolver

java.lang.ObjectSE
org.springframework.web.reactive.result.view.ViewResolverSupport
org.springframework.web.reactive.result.view.UrlBasedViewResolver
実装されているすべてのインターフェース:
Aware, InitializingBean, ApplicationContextAware, Ordered, ViewResolver
既知の直属サブクラス
FreeMarkerViewResolver, ScriptTemplateViewResolver

public class UrlBasedViewResolver extends ViewResolverSupport implements ViewResolver, ApplicationContextAware, InitializingBean
明示的なマッピング定義なしでシンボリックビュー名を URL に直接解決できる ViewResolver。これは、各ビューに専用のマッピングを定義する必要がなく、シンボリック名がビューリソースの名前と簡単に一致する場合に便利です(つまり、シンボリック名はリソースのファイル名の一意の部分です)。

FreeMarkerView のような AbstractUrlBasedView サブクラスをサポートします。このリゾルバーによって生成されるすべてのビューのビュークラスは、"viewClass" プロパティで指定できます。

ビュー名は、それ自体がリソース URL であるか、指定されたプレフィックスやサフィックスによって拡張されます。RequestContext を保持する属性をすべてのビューにエクスポートすることは明示的にサポートされています。

サンプル: prefix="templates/"、suffix=".ftl"、viewname="test" → "templates/test.ftl"

特別な機能として、リダイレクト URL は "redirect:" プレフィックスを使用して指定できます。たとえば、"redirect:myAction" は、標準のビュー名として解決するのではなく、指定された URL へのリダイレクトをトリガーします。これは通常、フォームワークフローの終了後にコントローラー URL にリダイレクトするために使用されます。

メモ: このクラスはローカライズされた解決をサポートしません。つまり、現在のロケールに応じて、シンボリックビュー名を別のリソースに解決します。

導入:
5.0
作成者:
Rossen Stoyanchev, Sebastien Deleuze, Juergen Hoeller, Sam Brannen
  • フィールドの詳細

    • REDIRECT_URL_PREFIX

      public static final StringSE REDIRECT_URL_PREFIX
      リダイレクト URL を指定する特別なビュー名のプレフィックス(通常は、フォームが送信および処理された後のコントローラーへ)。このようなビュー名は、構成されたデフォルトの方法では解決されず、特別なショートカットとして扱われます。
      関連事項:
  • コンストラクターの詳細

    • UrlBasedViewResolver

      public UrlBasedViewResolver()
  • メソッドの詳細

    • setViewClass

      public void setViewClass(@Nullable ClassSE<?> viewClass)
      ビューの作成に使用するビュークラスを設定します。
      パラメーター:
      viewClass - 必要なビュークラスに割り当て可能なクラス (デフォルト: AbstractUrlBasedView)
      関連事項:
    • getViewClass

      protected @Nullable ClassSE<?> getViewClass()
      ビューの作成に使用されるビュークラスを返します。
      関連事項:
    • setPrefix

      public void setPrefix(@Nullable StringSE prefix)
      URL を作成するときに名前を表示するために付加されるプレフィックスを設定します。
    • getPrefix

      protected StringSE getPrefix()
      URL を構築するときにビュー名の前に付加されるプレフィックスを返します。
    • setSuffix

      public void setSuffix(@Nullable StringSE suffix)
      URL を作成するときにビュー名に追加されるサフィックスを設定します。
    • getSuffix

      protected StringSE getSuffix()
      URL を構築するときにビュー名に追加されるサフィックスを返します。
    • setViewNames

      public void setViewNames(StringSE @Nullable ... viewNames)
      この ViewResolver で処理できるビュー名 (または名前パターン) を設定します。ビュー名には単純なワイルドカードを含めることができます。たとえば、"my*"、"*Report"、"*Repo*" はすべてビュー名 "myReport" と一致します。
      関連事項:
    • getViewNames

      protected StringSE @Nullable [] getViewNames()
      この ViewResolver で処理できるビュー名(または名前パターン)を返します。
    • setRedirectViewProvider

      public void setRedirectViewProvider(FunctionSE<StringSE, RedirectView> redirectViewProvider)
      たとえば、リダイレクトビューにカスタムデフォルトステータスコードを提供するために使用できる URL ベースの RedirectView プロバイダー。
    • setRequestContextAttribute

      public void setRequestContextAttribute(@Nullable StringSE requestContextAttribute)
      すべてのビューの RequestContext 属性の名前を設定します。
      パラメーター:
      requestContextAttribute - RequestContext 属性の名前
      関連事項:
    • getRequestContextAttribute

      protected @Nullable StringSE getRequestContextAttribute()
      すべてのビューの RequestContext 属性があれば、その名前を返します。
    • setApplicationContext

      public void setApplicationContext(@Nullable ApplicationContext applicationContext)
      含まれている ApplicationContext があればそれを受け入れます。

      新しく作成された View インスタンスの初期化、ライフサイクルコールバックの適用、包含環境へのアクセスの提供に使用されます。

      次で指定:
      インターフェース ApplicationContextAwaresetApplicationContext 
      パラメーター:
      applicationContext - このオブジェクトによって使用される ApplicationContext オブジェクト
      関連事項:
    • getApplicationContext

      public @Nullable ApplicationContext getApplicationContext()
      含まれている ApplicationContext があれば、それを返します。
      関連事項:
    • afterPropertiesSet

      public void afterPropertiesSet() throws ExceptionSE
      インターフェースからコピーされた説明: InitializingBean
      すべての Bean プロパティを設定し、BeanFactoryAwareApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。

      このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。

      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
      例外:
      ExceptionSE - 構成の誤り(必須プロパティの設定の失敗など)の場合、またはその他の理由で初期化が失敗した場合
    • resolveViewName

      public reactor.core.publisher.Mono<View> resolveViewName(StringSE viewName, LocaleSE locale)
      インターフェースからコピーされた説明: ViewResolver
      ビュー名を View インスタンスに解決します。
      次で指定:
      インターフェース ViewResolverresolveViewName 
      パラメーター:
      viewName - 解決するビューの名前
      locale - リクエストのロケール
      戻り値:
      解決されたビューまたは空のストリーム
    • canHandle

      protected boolean canHandle(StringSE viewName, LocaleSE locale)
      この ViewResolver が指定されたビュー名を処理できるかどうかを示します。そうでない場合は、空の結果が返されます。デフォルトの実装は、構成された view names に対してチェックします。
      パラメーター:
      viewName - 取得するビューの名前
      locale - ビューを取得するロケール
      戻り値:
      このリゾルバーが指定されたビューに適用されるかどうか
      関連事項:
    • requiredViewClass

      protected ClassSE<?> requiredViewClass()
      このリゾルバーに必要なビューの型を返します。この実装は AbstractUrlBasedView を返します。
      関連事項:
    • instantiateView

      protected AbstractUrlBasedView instantiateView()
      指定されたビュークラスをインスタンス化します。

      デフォルトの実装では、リフレクションを使用してクラスをインスタンス化します。

      戻り値:
      ビュークラスの新しいインスタンス
      導入:
      5.3
      関連事項:
    • createView

      protected AbstractUrlBasedView createView(StringSE viewName)
      指定されたビュークラスの新しい View インスタンスを作成して構成します。

      事前定義されたビューインスタンスのルックアップ実行しません

      Bean コンテナーで定義されている Spring ライフサイクルメソッドは、ここで呼び出す必要はありません。ApplicationContext が利用可能であれば、後で自動的に適用されます。

      パラメーター:
      viewName - 構築するビューの名前
      戻り値:
      ビューインスタンス
      関連事項:
    • applyLifecycleMethods

      protected View applyLifecycleMethods(StringSE viewName, AbstractUrlBasedView view)
      含まれている ApplicationContext のライフサイクルメソッドを特定の View インスタンスに適用します(そのようなコンテキストが利用可能な場合)。
      パラメーター:
      viewName - ビューの名前
      view - AbstractUrlBasedView のプロパティで事前設定された、新しく作成された View インスタンス
      戻り値:
      使用する View インスタンス (オリジナルまたは装飾されたバリアントのいずれか)
      関連事項: