クラス DefaultFlowUrlHandler

java.lang.ObjectSE
org.springframework.webflow.context.servlet.DefaultFlowUrlHandler
実装されたすべてのインターフェース:
FlowUrlHandler
既知の直属サブクラス
FilenameFlowUrlHandler

public class DefaultFlowUrlHandler extends ObjectSE implements FlowUrlHandler
Spring Web Flow のデフォルトの FlowUrlHandler 実装。

フローを起動する URL は次のパターンになることが想定されます。

 https://<host>/[app context path]/[app servlet path]/<flow path>
 
たとえば、URL http://localhost/springtravel/app/booking はフロー "booking" にマップされ、URL http://localhost/springtravel/app/hotels/booking はフロー "hotels/booking" にマップされます。これらの両方の例で、/springtravel はコンテキストパスで、/app はサーブレットパスです。フロー ID は、リクエスト URL 文字列のパス情報コンポーネントとして扱われます。パス情報が null の場合、servletPath がフロー ID として使用されます。また、サーブレットパスが拡張子で終わる場合、フロー ID の計算時に削除されます。例: コンテキストパスが /springtravel,、サーブレットパスが /hotels/booking.htm (サーブレットマッピングが *.htm にマップされている可能性が高い)、パス情報が null の場合、URL http://localhost/springtravel/hotels/booking.htm はフロー ID "hotels/booking" にマップされます。

フローを再開する URL は次のパターンになることが想定されます。

 https://<host>/[app context path]/[app servlet path]/<flow path>?execution=<flow execution key>
 
たとえば、URL http://localhost/springtravel/app/hotels/booking?execution=e1s1 は、"hotels/booking" フローの実行 "e1s1" を再開しようとします。
作成者:
Keith Donald, Jeremy Grelle
  • コンストラクターの詳細

    • DefaultFlowUrlHandler

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

    • setEncodingScheme

      public void setEncodingScheme(StringSE encodingScheme)
      フロー URL の文字エンコードスキームを設定します。デフォルトはリクエストのエンコードスキームです (特に指定がない場合は ISO-8859-1 になります)。
    • getFlowExecutionKey

      public StringSE getFlowExecutionKey(jakarta.servlet.http.HttpServletRequest request)
      インターフェースからコピーされた説明: FlowUrlHandler
      リクエストからフロー実行を抽出します。
      次で指定:
      インターフェース FlowUrlHandlergetFlowExecutionKey 
      パラメーター:
      request - リクエスト
      戻り値:
      フロー実行キー、またはフロー実行キーが存在しない場合は null
    • getFlowId

      public StringSE getFlowId(jakarta.servlet.http.HttpServletRequest request)
      インターフェースからコピーされた説明: FlowUrlHandler
      リクエストからフロー ID を抽出します。
      次で指定:
      インターフェース FlowUrlHandlergetFlowId 
      パラメーター:
      request - リクエスト
      戻り値:
      フロー ID、またはフロー ID が存在しない場合は null
    • createFlowExecutionUrl

      public StringSE createFlowExecutionUrl(StringSE flowId, StringSE flowExecutionKey, jakarta.servlet.http.HttpServletRequest request)
      インターフェースからコピーされた説明: FlowUrlHandler
      アドレス指定するとフローの既存の実行を再開する URL を作成します。
      次で指定:
      インターフェース FlowUrlHandlercreateFlowExecutionUrl 
      flowExecutionKey - 一時停止され再開を待機しているフロー実行キー
      request - 現在のリクエスト
      戻り値:
      フロー実行 URL
    • createFlowDefinitionUrl

      public StringSE createFlowDefinitionUrl(StringSE flowId, AttributeMap<?> input, jakarta.servlet.http.HttpServletRequest request)
      指定されたフロー ID のフロー定義 URL は、フロー ID をベースアプリのコンテキストとサーブレットパスに追加することによって構築されます。

      サンプル - 次の場所からリクエストが送信されました:

       https://someHost/someApp/someServlet/nestedPath/foo
       
      フロー ID "nestedPath/bar" のリクエストの場合、新しいフロー定義 URL は次のようになります。
       https://someHost/someApp/someServlet/nestedPath/bar
       
      次で指定:
      インターフェース FlowUrlHandlercreateFlowDefinitionUrl 
      パラメーター:
      flowId - フロー定義の ID
      input - 新しいフロー実行を渡すための入力
      request - 現在のリクエスト
      戻り値:
      フロー定義 URL
    • getEncodingScheme

      protected StringSE getEncodingScheme(jakarta.servlet.http.HttpServletRequest request)
    • appendQueryParameters

      protected <T> void appendQueryParameters(StringBuilderSE url, MapSE<StringSE,T> parameters, StringSE encodingScheme)