クラス AbstractAction
- 実装されたすべてのインターフェース:
org.springframework.beans.factory.InitializingBean
,Action
- 既知の直属サブクラス
CompositeAction
、EvaluateAction
、ExternalRedirectAction
、FlowDefinitionRedirectAction
、MultiAction
、RenderAction
、SetAction
、ViewFactoryActionAdapter
- Spring Bean ファクトリ内にデプロイされたときに init コールバックを受信するために
InitializingBean
を実装します。 - 「成功」や「エラー」などの共通の結果
Event
オブジェクトを作成するための便利なイベントファクトリメソッドを公開します。 - アクションの実行前および実行後のロジックを挿入するためのフック。
- 作成者:
- Keith Donald, Erwin Vervaet
フィールドのサマリー
フィールドコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明void
protected abstract Event
doExecute
(RequestContext context) テンプレートフックメソッドのサブクラスは、特定のアクション実行ロジックをカプセル化するためにオーバーライドする必要があります。protected void
doPostExecute
(RequestContext context) アクション後の実行フック。サブクラスでオーバーライドできます。protected Event
doPreExecute
(RequestContext context) アクション実行前のフック。サブクラスでオーバーライドできます。protected Event
error()
「エラー」結果イベントを返します。protected Event
error
(ExceptionSE e) 指定された例外によって発生した「エラー」結果イベントを返します。final Event
execute
(RequestContext context) このアクションを実行します。protected StringSE
ログ記録の目的でこのアクションの名前を返す内部ヘルパー。アクション実行結果イベントを作成するためのヘルパーデリゲートを返します。protected void
アクション初期化コールバック。サブクラスによってオーバーライドされ、カスタム初期化ロジックが実行される場合があります。protected Event
no()
「いいえ」の結果イベントを返します。protected Event
result
(boolean booleanResult) ブール値の結果が true の場合は yes() を返し、false の場合は no() を返します。protected Event
指定された識別子を持つこのアクションの結果イベントを返します。protected Event
指定された識別子と単一の属性を持つこのアクションの結果イベントを返します。protected Event
result
(StringSE eventId, AttributeMap<ObjectSE> resultAttributes) 指定された識別子と指定された属性セットを持つこのアクションの結果イベントを返します。protected Event
success()
「成功」結果イベントを返します。protected Event
指定された結果オブジェクトをパラメーターとして「成功」結果イベントを返します。protected Event
yes()
「はい」の結果イベントを返します。
フィールドの詳細
logger
protected final org.apache.commons.logging.Log loggerサブクラスで使用可能なロガー。
コンストラクターの詳細
AbstractAction
public AbstractAction()
メソッドの詳細
getEventFactorySupport
アクション実行結果イベントを作成するためのヘルパーデリゲートを返します。- 戻り値:
- イベントファクトリサポート
afterPropertiesSet
- 次で指定:
- インターフェース
org.springframework.beans.factory.InitializingBean
のafterPropertiesSet
- 例外:
ExceptionSE
initAction
アクション初期化コールバック。サブクラスによってオーバーライドされ、カスタム初期化ロジックが実行される場合があります。このフックは、アクションの初期化をトリガーするために Spring
InitializingBean
メカニズムを使用するため、このアクションが Spring アプリケーションコンテキストにデプロイされている場合にのみ呼び出されることに注意してください。- 例外:
ExceptionSE
success
「成功」結果イベントを返します。success
指定された結果オブジェクトをパラメーターとして「成功」結果イベントを返します。- パラメーター:
result
- アクション成功の結果
error
「エラー」結果イベントを返します。error
指定された例外によって発生した「エラー」結果イベントを返します。- パラメーター:
e
- エラーイベントの原因となった例外をイベント属性として設定する
yes
「はい」の結果イベントを返します。no
「いいえ」の結果イベントを返します。result
ブール値の結果が true の場合は yes() を返し、false の場合は no() を返します。- パラメーター:
booleanResult
- ブール値- 戻り値
- はい、もしくは、いいえ
result
指定された識別子を持つこのアクションの結果イベントを返します。通常は return の一部として呼び出されます。例:protected Event doExecute(RequestContext context) { // do some work if (some condition) { return result("success"); } else { return result("error"); } }
共通の結果を返すには、error() または success() ファクトリメソッドを呼び出すことを検討してください。- パラメーター:
eventId
- 結果イベント識別子- 戻り値:
- アクション結果イベント
result
指定された識別子と指定された属性セットを持つこのアクションの結果イベントを返します。通常は return の一部として呼び出されます。例:protected Event doExecute(RequestContext context) { // do some work AttributeMap resultAttributes = new AttributeMap(); resultAttributes.put("name", "value"); if (some condition) { return result("success", resultAttributes); } else { return result("error", resultAttributes); } }
共通の結果を返すには、error() または success() ファクトリメソッドを呼び出すことを検討してください。- パラメーター:
eventId
- 結果イベント識別子resultAttributes
- イベント属性- 戻り値:
- アクション結果イベント
result
protected Event result(StringSE eventId, StringSE resultAttributeName, ObjectSE resultAttributeValue) 指定された識別子と単一の属性を持つこのアクションの結果イベントを返します。- パラメーター:
eventId
- 結果 IDresultAttributeName
- 属性名resultAttributeValue
- 属性値- 戻り値:
- アクション結果イベント
execute
インターフェースからコピーされた説明:Action
このアクションを実行します。アクションの実行は、アクティブなフロー実行に関連付けられたリクエストのコンテキストで発生します。アクションの呼び出しは、通常、フロー定義の実行を実行するフロー内の状態によって本番環境でトリガーされます。アクション実行の結果、つまり論理的な結果イベントは、呼び出し状態から遷移するための根拠として使用できます。
メモ: このメソッドの
RequestContext
引数は、現在実行中のスレッドのコンテキストでアクティブなフロー実行に関するデータへのアクセスを提供します。特に、これにより、このアクションは他のアクションによって設定されたdata
にアクセスしたり、特定のスコープ内で公開する独自の属性を設定したりできるようになります。アクションと属性スコープ型の使用に関する注意事項:
request scope
に設定された属性は、現在実行中のリクエストの有効期間中のみ存在します。flash scope
で設定された属性は、ビューのレンダリングが完了するまで存在します。その時間には、現在のリクエストと、ビューのレンダリングが完了するために必要なリダイレクトが含まれます。flow scope
で設定された属性はフローセッションの存続期間中存在し、フローセッションが終了すると自動的にクリーンアップされます。conversation scope
で設定された属性は、フロー実行全体の存続期間中存在し、ユーザーとの単一の論理的な「会話」を表します。
通常、任意のスコープ内に存在するすべての属性は、ビュー状態などの「インタラクティブ」な状態型が入力されたときに、ビューによるアクセスのためにモデル内で公開されます。
メモ: フロースコープは、一般的には汎用キャッシュとして使用されるべきではなく、このアクションが関与するフローの他の状態でローカルに必要なデータのコンテキストとして使用されるべきです。例: オブジェクトの大スコープなコレクション (検索結果ビューをサポートするために返されるものなど) をフロースコープに詰め込むのは不適切です。代わりに、そのような結果コレクションをリクエストスコープに配置し、その結果を表示するたびにこのアクションを再度実行してください。SWF の外部で管理される第 2 レベルのキャッシュは、より一般的なキャッシュソリューションです。
メモ: フロースコープ属性は直列化の対象となるため、
Serializable
である必要があります。- 次で指定:
- インターフェース
Action
のexecute
- パラメーター:
context
- アクション実行コンテキスト。scope type
のデータにアクセスして設定し、他のフローコンテキスト情報を取得するためのものです。(例: リクエストコンテキスト属性とフロー実行コンテキスト情報)- 戻り値:
- 呼び出しフローの遷移の根拠として使用される論理的な結果 (例: 「成功」、「エラー」、「はい」、「いいえ」、*...)
- 例外:
ExceptionSE
- アクション実行中に、チェック済みまたはチェックされていない例外が発生しました。 回復可能な例外はすべてこのメソッド内でキャッチされ、適切な結果が返されるか、呼び出しフロー実行の現在の状態によって処理される必要があることに注意してください。
getActionNameForLogging
ログ記録の目的でこのアクションの名前を返す内部ヘルパー。デフォルトは短いクラス名です。- 関連事項:
ClassUtils.getShortName(java.lang.Class)
doPreExecute
アクション実行前のフック。サブクラスでオーバーライドできます。このメソッドがnull
以外のイベントを返す場合、doExecute()
メソッドは呼び出されず、返されたイベントは呼び出しアクション状態でトリガーする遷移を選択するために使用されます。このメソッドがnull
を返す場合、アクション結果イベントを取得するためにdoExecute()
が呼び出されます。この実装は
null
を返すだけです。- パラメーター:
context
- 「フロースコープ」または「リクエストスコープ」内のデータにアクセスして設定するためのアクション実行コンテキスト- 戻り値:
null
以外のアクション結果。この場合、doExecute()
は呼び出されません。アクション結果を取得するためにdoExecute()
メソッドを呼び出す必要がある場合は、null
が呼び出されます。- 例外:
ExceptionSE
- チェック済みまたはチェックされていない回復不可能な例外が発生しました
doExecute
テンプレートフックメソッドのサブクラスは、特定のアクション実行ロジックをカプセル化するためにオーバーライドする必要があります。- パラメーター:
context
- 「フロースコープ」または「リクエストスコープ」内のデータにアクセスして設定するためのアクション実行コンテキスト- 戻り値:
- アクション結果イベント
- 例外:
ExceptionSE
- チェック済みまたはチェックされていない回復不可能な例外が発生しました
doPostExecute
アクション後の実行フック。サブクラスがオーバーライドする場合があります。doExecute()
が呼び出された場合にのみ呼び出されます (例:doPreExecute()
がnull
を返した場合)。この実装は何もしません。
- パラメーター:
context
- 「フロースコープ」または「リクエストスコープ」内のデータにアクセスして設定するためのアクション実行コンテキスト- 例外:
ExceptionSE
- チェック済みまたはチェックされていない回復不可能な例外が発生しました