クラス RedirectView

実装されたすべてのインターフェース:
AwareBeanNameAwareInitializingBeanApplicationContextAwareView

public class RedirectView extends AbstractUrlBasedView
絶対 URL またはコンテキスト相対 URL にリダイレクトするビュー。URL は、URI テンプレートである場合があります。この場合、URI テンプレート変数は、モデルの値または現在のリクエストの URI 変数で置き換えられます。

デフォルトでは HttpStatus.SEE_OTHER が使用されますが、コンストラクターまたは setter 引数を介して代替状況コードを指定できます。

導入:
5.0
作成者:
Sebastien Deleuze, Rossen Stoyanchev
  • コンストラクターの詳細

    • RedirectView

      public RedirectView()
      Bean として使用するコンストラクター。
    • RedirectView

      public RedirectView(StringSE redirectUrl)
      指定されたリダイレクト URL で新しい RedirectView を作成します。

      デフォルトでは、ステータスコード HttpStatus.SEE_OTHER が使用されます。

    • RedirectView

      public RedirectView(StringSE redirectUrl, HttpStatusCode statusCode)
      指定された URL と HttpStatus.TEMPORARY_REDIRECTHttpStatus.PERMANENT_REDIRECT などの代替リダイレクトステータスコードを使用して、新しい RedirectView を作成します。
  • メソッドの詳細

    • setStatusCode

      public void setStatusCode(HttpStatusCode statusCode)
      HttpStatus.TEMPORARY_REDIRECTHttpStatus.PERMANENT_REDIRECT などの代替リダイレクトステータスコードを設定します。
    • getStatusCode

      public HttpStatusCode getStatusCode()
      使用するリダイレクトステータスコードを取得します。
    • setContextRelative

      public void setContextRelative(boolean contextRelative)
      スラッシュ("/")で始まる特定のリダイレクト URL を、現在のコンテキストパス(true、デフォルト)を基準として解釈するか、Web サーバールート(false)を基準として解釈するか。
    • isContextRelative

      public boolean isContextRelative()
      URL を現在のコンテキストパスに対する相対パスとして解釈するかどうか。
    • setPropagateQuery

      public void setPropagateQuery(boolean propagateQuery)
      現在の URL のクエリ文字列をリダイレクト URL に追加するか(true)、否か(false、デフォルト)。
    • isPropagateQuery

      public boolean isPropagateQuery()
      現在の URL のクエリ文字列がリダイレクト URL に追加されるかどうか。
    • setHosts

      public void setHosts(@Nullable StringSE... hosts)
      アプリケーションに関連付けられた 1 つ以上のホストを構成します。

      他のすべてのホストは外部ホストと見なされます。

      実際、これにより、ホストがあり、そのホストが既知のホストとしてリストされていない URL のエンコーディングをオフにする方法が提供されます。

      設定しない場合(デフォルト)、すべてのリダイレクト URL がエンコードされます。

      パラメーター:
      hosts - 1 つ以上のアプリケーションホスト
    • getHosts

      @Nullable public StringSE[] getHosts()
      設定されたアプリケーションホストを返します。
    • isRedirectView

      public boolean isRedirectView()
      インターフェースからコピーされた説明: View
      このビューがリダイレクトを実行してレンダリングするかどうか。
    • checkResourceExists

      public boolean checkResourceExists(LocaleSE locale) throws ExceptionSE
      クラスからコピーされた説明: AbstractUrlBasedView
      設定した URL のリソースが実際に存在するか確認してください。
      次で指定:
      クラス AbstractUrlBasedViewcheckResourceExists 
      パラメーター:
      locale - 探している希望のロケール
      戻り値:
      リソースが存在する場合は false、存在しないことがわかっている場合は false 
      例外:
      ExceptionSE - リソースは存在するが無効である場合 (たとえば解析できませんでした)
    • renderInternal

      protected reactor.core.publisher.Mono<VoidSE> renderInternal(MapSE<StringSE,ObjectSE> model, @Nullable MediaType contentType, ServerWebExchange exchange)
      モデルをリクエストパラメーターに変換し、指定された URL にリダイレクトします。
      次で指定:
      クラス AbstractViewrenderInternal 
      パラメーター:
      model - 静的な属性よりも動的な値が優先される、結合された出力マップ(非 null
      contentType - レンダリングするために選択されたコンテンツ型。サポートされているメディア型のいずれかと一致する必要があります
      exchange - 現在の交換
      戻り値:
      レンダリングが成功したときと成功したかどうかを表す Mono 
    • createTargetUrl

      protected final StringSE createTargetUrl(MapSE<StringSE,ObjectSE> model, ServerWebExchange exchange)
      ターゲット URL を作成し、必要に応じて contextPath をプリペンドし、URI テンプレート変数を展開し、現在のリクエストクエリを追加して、構成された RequestDataValueProcessor を適用します。
    • expandTargetUrlTemplate

      protected StringBuilderSE expandTargetUrlTemplate(StringSE targetUrl, MapSE<StringSE,ObjectSE> model, MapSE<StringSE,StringSE> uriVariables)
      モデル属性値を使用するか、現在のリクエストからの URI 変数値を使用したフォールバックとして、ターゲット URL の URI テンプレート変数を展開します。値はエンコードされます。
    • appendCurrentRequestQuery

      protected StringBuilderSE appendCurrentRequestQuery(StringSE targetUrl, ServerHttpRequest request)
      現在のリクエストのクエリをターゲットリダイレクト URL に追加します。
    • sendRedirect

      protected reactor.core.publisher.Mono<VoidSE> sendRedirect(StringSE targetUrl, ServerWebExchange exchange)
      HTTP クライアントにリダイレクトを送り返します。
      パラメーター:
      targetUrl - リダイレクトするターゲット URL
      exchange - 現在の交換
    • isRemoteHost

      protected boolean isRemoteHost(StringSE targetUrl)
      指定された targetUrl に「外部」システムであるホストがあるかどうか。この場合、HttpServletResponse.encodeRedirectURL(java.lang.String)EE は適用されません。

      このメソッドは、setHosts(String[]) プロパティが構成されていて、ターゲット URL に一致しないホストがある場合に true を返します。

      パラメーター:
      targetUrl - ターゲットのリダイレクト URL
      戻り値:
      ターゲット URL にリモートホストがある場合は true、URL にホストがない場合または "host" プロパティが構成されていない場合は false