クラス FilenameFlowUrlHandler
java.lang.ObjectSE
org.springframework.webflow.context.servlet.DefaultFlowUrlHandler
org.springframework.webflow.context.servlet.FilenameFlowUrlHandler
- 実装されたすべてのインターフェース:
FlowUrlHandler
標準の
DefaultFlowUrlHandler
の代替となるファイル名ベースの FlowUrlHandler
実装。URL サフィックスやプレフィックスのないリクエストのファイル名をフロー ID として扱います。既存の Web Flow 2 アプリケーションとの互換性を維持するために、FlowController
実装によってデフォルトの実装として使用されます。この実装は、ファイル名を抽出し、リクエスト URL からファイル拡張子を削除します。結果は、アプリケーション全体で一意である必要があるフロー ID として使用されます。
たとえば、URL は次のようになります。
https://someHost/someApp/someServlet/foo https://someHost/someApp/someServlet/nestedPath/foo https://someHost/someApp/someServlet/nestedPath/foo.htmlファイル名 "foo" はすべてフロー ID として扱われます。
注意 : このクラスはファイル名のみをフロー ID として扱うため、衝突が発生する可能性があります。例:
http://localhost/springtravel/app/hotel/booking http://localhost/springtravel/app/flight/bookingどちらも、"hotel/booking" と "flight/booking" ではなく、同じフロー ID "booking" をマップします。これはこの実装の制限です。これらの衝突を回避するには、リクエスト URL プレフィックスも使用する標準の
DefaultFlowUrlHandler
の使用を検討してください。- 作成者:
- Agim Emruli, Jeremy Grelle, Nazaret Kazarian
コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明createFlowDefinitionUrl
(StringSE flowId, AttributeMap<?> input, jakarta.servlet.http.HttpServletRequest request) 指定された flowId のフロー定義 URL は、同じパスとファイル拡張子を再利用して、現在のリクエストの URL から推測されます。static StringSE
extractFilenameFromUrlPath
(StringSE urlPath) static StringSE
extractFullFilenameFromUrlPath
(StringSE urlPath) getFlowId
(jakarta.servlet.http.HttpServletRequest request) リクエストからフロー ID を抽出します。クラス org.springframework.webflow.context.servlet.DefaultFlowUrlHandler から継承されたメソッド
appendQueryParameters, createFlowExecutionUrl, getEncodingScheme, getFlowExecutionKey, setEncodingScheme
コンストラクターの詳細
FilenameFlowUrlHandler
public FilenameFlowUrlHandler()
メソッドの詳細
getFlowId
インターフェースからコピーされた説明:FlowUrlHandler
リクエストからフロー ID を抽出します。- 次で指定:
- インターフェース
FlowUrlHandler
のgetFlowId
- オーバーライド:
- クラス
DefaultFlowUrlHandler
のgetFlowId
- パラメーター:
request
- リクエスト- 戻り値:
- フロー ID、またはフロー ID が存在しない場合は null
extractFilenameFromUrlPath
extractFullFilenameFromUrlPath
createFlowDefinitionUrl
public StringSE createFlowDefinitionUrl(StringSE flowId, AttributeMap<?> input, jakarta.servlet.http.HttpServletRequest request) 指定された flowId のフロー定義 URL は、同じパスとファイル拡張子を再利用して、現在のリクエストの URL から推測されます。サンプル - 次の場所からリクエストが送信されました:
https://someHost/someApp/someServlet/nestedPath/foo.html
フロー ID "bar" のリクエストの場合、新しいフロー定義 URL は次のようになります。https://someHost/someApp/someServlet/nestedPath/bar.html
- 次で指定:
- インターフェース
FlowUrlHandler
のcreateFlowDefinitionUrl
- オーバーライド:
- クラス
DefaultFlowUrlHandler
のcreateFlowDefinitionUrl
- パラメーター:
flowId
- フロー定義の IDinput
- 新しいフロー実行を渡すための入力request
- 現在のリクエスト- 戻り値:
- フロー定義 URL