クラス FormAction
- 実装されたすべてのインターフェース:
org.springframework.beans.factory.InitializingBean
,Action
いくつかのアクション実行メソッドが提供されています:
setupForm(RequestContext)
- フォームオブジェクトをフォームに表示するために準備し、必要に応じてcreating it
および関連するerrors
を作成し、それぞれ構成されたform object scope
およびform errors scope
にキャッシュします。また、フォームオブジェクトフィールド値をフォーマットするためのカスタムプロパティエディターもinstalls
します。このアクションメソッドは、例外がスローされない限り、「成功」イベントを返します。bindAndValidate(RequestContext)
- すべての受信リクエストパラメーターをフォームオブジェクトにバインドし、registered validator
を使用してフォームオブジェクトを検証します。このアクションメソッドは、バインドエラーまたは検証エラーがない場合には「成功」イベントを返し、それ以外の場合は「エラー」イベントを返します。bind(RequestContext)
- すべての受信リクエストパラメーターをフォームオブジェクトにバインドします。追加の検証は実行されません。このアクションメソッドは、バインディングエラーがない場合には「成功」イベントを返し、そうでない場合は「エラー」イベントを返します。validate(RequestContext)
- 登録された検証機能を使用してフォームオブジェクトを検証します。データバインディングは実行されません。このアクションメソッドは、検証エラーがない場合には「成功」イベントを返し、そうでない場合は「エラー」イベントを返します。resetForm(RequestContext)
- バックアップフォームオブジェクトを再読み込みし、カスタムプロパティエディターを再インストールしてフォームをリセットします。完了すると「成功」が返され、失敗すると例外がスローされます。
これはマルチアクションなので、サブクラスは任意の数の追加のアクション実行メソッドを追加できます (例: "setupReferenceData(RequestContext)"、または "processSubmit(RequestContext)")。
このアクションを使用すると、フロー内でフォームの準備と送信のロジックを実装することが非常に簡単になります。これを行う 1 つの方法は次のとおりです。
- フォームを表示するためのビューステートを作成します。そのステートのレンダリングアクションで、
setupForm
を呼び出して、新しいフォームを表示できるように準備します。 - 一致する「送信」遷移で、
bindAndValidate
を呼び出して受信リクエストパラメーターをフォームオブジェクトにバインドし、フォームオブジェクトを検証するアクションを実行します。 - バインディングまたは検証エラーがある場合、遷移は許可されず、ビューステートが自動的に再入力されます。
- バインディングと検証が成功した場合は、"processSubmit" (またはその他の適切な名前) というアクション状態に進みます。これにより、"processSubmit" というアクションメソッドが呼び出されます。このメソッドは、ビジネスロジックとの対話など、フォームの送信を処理するためにサブクラスに提供する必要があります。
- ビジネス処理が正常であれば、ビューステートに進み、成功ビューを表示します。
このようなフォームフローの実装例を次に示します。
<view-state id="displayCriteria"> <on-render> <evaluate expression="formAction.setupForm"/> </on-render> <transition on="search" to="executeSearch"> <evaluate expression="formAction.bindAndValidate"/> </transition> </view-state>
さらに柔軟性が必要な場合は、単一の論理フォーム状態として機能する上記のビュー状態を複数の状態に分割することを検討してください。たとえば、1 つのアクション状態でフォームの設定を処理し、ビュー状態トリガーフォームの表示、別のアクション状態でデータバインディングと検証を処理し、別の状態でフォームの送信を処理することができます。これは少し冗長になりますが、フロー内で発生するきめ細かいアクションの特定の結果にどのように対応するかをより細かく制御することもできます。
フックのサブクラス化:
- 重要なフックは
createFormObject
です。これをオーバーライドして、バッキングフォームオブジェクトインスタンスの取得元をカスタマイズできます (たとえば、メモリ内で一時的にインスタンス化されるか、データベースから読み込まれるか)。 - このクラスが提供するオプションのフックメソッドは
initBinder
です。これは、新しいデータバインダーが作成された後に呼び出されます。 - もう 1 つのオプションのフックメソッドは
registerPropertyEditors(PropertyEditorRegistry)
です。これをオーバーライドすると、フォームに必要なプロパティエディターを登録できます。このメソッドをオーバーライドする代わりに、カスタム PropertyEditor インストールロジックをカプセル化するより再利用可能な方法として、明示的なPropertyEditorRegistrar
戦略を設定することを検討してください。 validationEnabled(RequestContext)
をオーバーライドして、リクエストコンテキストで使用可能なデータに基づいて検証を実行するかどうかを動的に決定します。
このアクションは、Spring MVC の SimpleFormController
に似た referenceData() フックメソッドを提供しないことに注意してください。フォームのドロップダウンに入力するための参照データを公開する場合は、それを実行するカスタムアクションメソッドを FormAction サブクラスで定義できます。setupForm 状態の一部としての連鎖アクションとして、またはきめ細かい状態定義自体として、単にそれを呼び出すだけです。
たとえば、サブクラスでこのメソッドを作成することができます。
public Event setupReferenceData(RequestContext context) throws Exception { MutableAttributeMap requestScope = context.getRequestScope(); requestScope.put("refData", lookupService.getSupportingFormData()); return success(); }... そして次のように呼び出します:
<view-state id="displayCriteria"> <on-render> <evaluate expression="formAction.setupForm"/> <evaluate expression="formAction.setupReferenceData"/> </on-render> ... </view-state>チェーン (責任の チェーン) で複数のアクションメソッドを呼び出すこのスタイルは、単一のアクションメソッドをオーバーライドするよりも推奨されます。一般に、アクションメソッドのオーバーライドは推奨されません。
登録された Validator
を使用して送信された入力データを検証する場合、このクラスは次のオプションを提供します。
- 検証をまったく必要としない場合は、
bindAndValidate(RequestContext)
ではなくbind(RequestContext)
を呼び出すか、バリデータを登録しないでください。 - 複数ページのウィザードなどで部分的な検証が必要な場合は、
bindAndValidate(RequestContext)
またはvalidate(RequestContext)
を呼び出して、validatorMethod
アクション実行属性を指定します。これにより、バリデーターで識別されたカスタムバリデーターメソッドが呼び出されます。バリデーターメソッドのシグネチャーは、次のパターンに従う必要があります。public void ${validateMethodName}(${formObjectClass}, Errors)
たとえば、次のようなアクション定義があるとします。<evaluate expression="formAction.bindAndValidate"> <attribute name="validatorMethod" value="validateSearchCriteria"/> </evaluate>
フォームオブジェクトクラスがSearchCriteria
の場合、登録されたバリデータのpublic void validateSearchCriteria(SearchCriteria, Errors)
メソッドが呼び出されます。 - 登録されたバリデータの
validate
メソッドを使用して完全な検証を実行する場合は、"validatorMethod" アクション実行属性を指定せずにbindAndValidate(RequestContext)
またはvalidate(RequestContext)
を呼び出します。
名前 | default | 説明 |
formObjectName | formObject | フォームオブジェクトの名前。フォームオブジェクトは、この名前を使用して構成されたスコープに設定されます。 |
formObjectClass | null | このアクションのフォームオブジェクトクラス。このクラスのインスタンスが設定され、検証されます。バリデーターを使用する場合に必須です。 |
formObjectScope | flow | フォームオブジェクトが配置されるスコープ。フロースコープに配置されると、オブジェクトはキャッシュされ、フローの存続期間中は以前の値を保持しながら再利用されます。リクエストスコープでは、フロー実行へのリクエストごとに新しいフォームオブジェクトインスタンスが作成されます。 |
formErrorsScope | flash | フォームオブジェクトエラーインスタンスが配置されるスコープ。フラッシュスコープに配置された場合、フォームエラーは次のユーザーイベントが通知されるまでキャッシュされます。 |
propertyEditorRegistrar | null | カスタムプロパティエディターをデータバインダーに登録するために使用される戦略。これは、registerPropertyEditors(PropertyEditorRegistry) フックメソッドをオーバーライドする代わりに使用できます。 |
バリデーター | null | このアクションの検証ツール。検証ツールは指定されたフォームオブジェクトクラスをサポートする必要があります。 |
messageCodesResolver | null | エラーをメッセージコードに解決するために使用する戦略を設定します。 |
- 作成者:
- Erwin Vervaet, Keith Donald
- 関連事項:
PropertyEditorRegistrar
DataBinder
ScopeType
ネストされたクラスのサマリー
クラス org.springframework.webflow.action.MultiAction から継承されたネストクラス / インターフェース
MultiAction.MethodResolver
フィールドのサマリー
フィールド修飾子と型フィールド説明static final StringSE
デフォルトのフォームオブジェクト名 ("formObject" )。static final StringSE
部分的なウィザードページ検証 ("validatorMethod" ) をサポートするために、構成された検証インスタンスで呼び出す必要があるメソッドを識別するオプションの属性。クラス org.springframework.webflow.action.AbstractAction から継承されたフィールド
logger
コンストラクターの概要
コンストラクターコンストラクター説明Bean スタイルのデフォルトコンストラクター。デフォルトのプロパティ値に依存して、最初は構成されていない FormAction インスタンスを作成します。FormAction
(ClassSE<?> formObjectClass) 指定されたフォームオブジェクトクラスのインスタンスを管理する新しいフォームアクションを作成します。メソッドのサマリー
修飾子と型メソッド説明bind
(RequestContext context) 受信したリクエストパラメーターをフォームオブジェクトの許可されたフィールドにバインドします。bindAndValidate
(RequestContext context) 受信したリクエストパラメーターをフォームオブジェクトの許可されたフィールドにバインドし、バリデータが構成されている場合はバインドされたフォームオブジェクトを検証します。protected org.springframework.validation.DataBinder
createBinder
(RequestContext context, ObjectSE formObject) 指定されたフォームオブジェクトとリクエストコンテキストの新しいバインダーインスタンスを作成します。protected ObjectSE
createFormObject
(RequestContext context) このform action
によって管理されるバッキングフォームオブジェクトインスタンスを作成します。protected void
doBind
(RequestContext context, org.springframework.validation.DataBinder binder) 指定されたバインダーを使用して、外部コンテキストリクエストパラメーターマップ内の許可されたパラメーターをフォームオブジェクトにバインドします。protected void
doValidate
(RequestContext context, ObjectSE formObject, org.springframework.validation.Errors errors) 登録されたバリデーターを使用して、指定されたフォームオブジェクトを検証します。protected org.springframework.validation.Errors
getFormErrors
(RequestContext context) このフォームアクションのフォームオブジェクトエラーを返す便利なメソッドです。Errors オブジェクトが配置されるスコープを取得します。protected ObjectSE
getFormObject
(RequestContext context) このフォームアクションのフォームオブジェクトを返す便利なメソッドです。protected FormObjectAccessor
getFormObjectAccessor
(RequestContext context) 提供されたリクエストコンテキスト内のフォームオブジェクトにアクセスするための新しいフォームオブジェクトアクセサーを返すファクトリメソッド。ClassSE<?>
このアクションのフォームオブジェクトクラスを返します。設定されたスコープ内のフォームオブジェクトの名前を返します。フォームオブジェクトが配置されるスコープを取得します。org.springframework.validation.MessageCodesResolver
エラーをメッセージコードに解決するために使用する戦略を返します。org.springframework.beans.PropertyEditorRegistrar
このアクションのデータバインダーのプロパティエディター登録戦略を取得します。protected org.springframework.webflow.action.DispatchMethodInvoker
検証メソッドを呼び出すためのディスパッチャーを返します。org.springframework.validation.Validator
このアクションのバリデーターを返します。protected void
アクション初期化コールバック。サブクラスによってオーバーライドされ、カスタム初期化ロジックが実行される場合があります。protected void
initBinder
(RequestContext context, org.springframework.validation.DataBinder binder) 新しいバインダーインスタンスを初期化します。protected void
registerPropertyEditors
(org.springframework.beans.PropertyEditorRegistry registry) カスタムエディターを登録して、データバインディングおよびフォームの表示中にフォームオブジェクトのフィールドの型変換を実行します。protected void
registerPropertyEditors
(RequestContext context, org.springframework.beans.PropertyEditorRegistry registry) カスタムエディターを登録して、データバインディングおよびフォームの表示中にフォームオブジェクトのフィールドの型変換を実行します。resetForm
(RequestContext context) 指定されたスコープ内のフォームオブジェクトをクリアして再作成することで、フォームをリセットします。void
setFormErrorsScope
(ScopeType errorsScope) Errors オブジェクトが配置されるスコープを設定します。void
setFormObjectClass
(ClassSE<?> formObjectClass) このアクションのフォームオブジェクトクラスを設定します。void
setFormObjectName
(StringSE formObjectName) 設定されたスコープ内のフォームオブジェクトの名前を設定します。void
setFormObjectScope
(ScopeType scopeType) フォームオブジェクトが配置される範囲を設定します。void
setMessageCodesResolver
(org.springframework.validation.MessageCodesResolver messageCodesResolver) エラーをメッセージコードに解決するために使用する戦略を設定します。void
setPropertyEditorRegistrar
(org.springframework.beans.PropertyEditorRegistrar propertyEditorRegistrar) このアクションのデータバインダーのプロパティエディター登録戦略を設定します。setupForm
(RequestContext context) 新しいフォームに表示するためのフォームオブジェクトを準備し、必要に応じてフォームオブジェクトを作成してgetFormObjectScope()
にキャッシュします。void
setValidator
(org.springframework.validation.Validator validator) このアクションのバリデーターを設定します。toString()
validate
(RequestContext context) 構成されている場合は、バリデーターを呼び出してフォームオブジェクトを検証します。protected boolean
validationEnabled
(RequestContext context) フローリクエストコンテキストの状態に応じて検証を実行する必要があるかどうかを返します。クラス org.springframework.webflow.action.MultiAction から継承されたメソッド
doExecute, getMethodResolver, setMethodResolver, setTarget
クラス org.springframework.webflow.action.AbstractAction から継承されたメソッド
afterPropertiesSet, doPostExecute, doPreExecute, error, error, execute, getActionNameForLogging, getEventFactorySupport, no, result, result, result, result, success, success, yes
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSE
インターフェース org.springframework.beans.factory.InitializingBean から継承されたメソッド
afterPropertiesSet
フィールドの詳細
コンストラクターの詳細
FormAction
public FormAction()Bean スタイルのデフォルトコンストラクター。デフォルトのプロパティ値に依存する、最初は未構成の FormAction インスタンスを作成します。このコンストラクターを直接呼び出すクライアントは、formObjectClass プロパティを設定するか、createFormObject(RequestContext)
をオーバーライドする必要があります。FormAction
指定されたフォームオブジェクトクラスのインスタンスを管理する新しいフォームアクションを作成します。- パラメーター:
formObjectClass
- フォームオブジェクトのクラス (インスタンス化可能でなければならない)
メソッドの詳細
getFormObjectName
設定されたスコープ内のフォームオブジェクトの名前を返します。setFormObjectName
設定されたスコープ内のフォームオブジェクトの名前を設定します。フォームオブジェクトは、この名前で設定されたスコープに含まれます。getFormObjectClass
このアクションのフォームオブジェクトクラスを返します。setFormObjectClass
このアクションのフォームオブジェクトクラスを設定します。このクラスのインスタンスが設定され、検証されます。フォームアクション (setValidator(Validator)
) で検証を登録する場合、これは必須のプロパティです。このメソッドが呼び出された時点でフォームオブジェクト名が設定されていない場合、
ClassUtils.getShortNameAsProperty(java.lang.Class)
を使用して、提供されたフォームオブジェクトクラスに基づいてフォームオブジェクト名が自動的に生成されます。getFormObjectScope
フォームオブジェクトが配置されるスコープを取得します。setFormObjectScope
フォームオブジェクトが配置されるスコープを設定します。設定されていない場合のデフォルトはflow scope
です。getFormErrorsScope
Errors オブジェクトが配置されるスコープを取得します。setFormErrorsScope
Errors オブジェクトが配置されるスコープを設定します。設定されていない場合のデフォルトはflash scope
です。getPropertyEditorRegistrar
public org.springframework.beans.PropertyEditorRegistrar getPropertyEditorRegistrar()このアクションのデータバインダーのプロパティエディター登録戦略を取得します。setPropertyEditorRegistrar
public void setPropertyEditorRegistrar(org.springframework.beans.PropertyEditorRegistrar propertyEditorRegistrar) このアクションのデータバインダーのプロパティエディター登録戦略を設定します。これは、registerPropertyEditors(PropertyEditorRegistry)
メソッドをオーバーライドする代わりの方法です。getValidator
public org.springframework.validation.Validator getValidator()このアクションのバリデーターを返します。setValidator
public void setValidator(org.springframework.validation.Validator validator) このアクションのバリデータを設定します。バリデータを設定する場合は、form object class
も設定する必要があります。バリデータは、指定されたフォームオブジェクトクラスをサポートする必要があります。getMessageCodesResolver
public org.springframework.validation.MessageCodesResolver getMessageCodesResolver()エラーをメッセージコードに解決するために使用する戦略を返します。setMessageCodesResolver
public void setMessageCodesResolver(org.springframework.validation.MessageCodesResolver messageCodesResolver) エラーをメッセージコードに解決するために使用する戦略を設定します。指定された戦略を、このアクションで使用されるすべてのデータバインダーに適用します。デフォルトは null です。つまり、データバインダーのデフォルトの戦略を使用します。
- 関連事項:
createBinder(RequestContext, Object)
DataBinder.setMessageCodesResolver(org.springframework.validation.MessageCodesResolver)
initAction
protected void initAction()クラスからコピーされた説明:AbstractAction
アクション初期化コールバック。サブクラスによってオーバーライドされ、カスタム初期化ロジックが実行される場合があります。このフックは、アクションの初期化をトリガーするために Spring
InitializingBean
メカニズムを使用するため、このアクションが Spring アプリケーションコンテキストにデプロイされている場合にのみ呼び出されることに注意してください。- オーバーライド:
- クラス
AbstractAction
のinitAction
setupForm
新しいフォームに表示するためのフォームオブジェクトを準備し、必要に応じてフォームオブジェクトを作成してgetFormObjectScope()
にキャッシュします。また、テキストフィールドなどの UI コントロールでフォームオブジェクトの値をフォーマットするためのカスタムプロパティエディターもインストールします。構成された
scope
にフォームオブジェクトがまだ存在しない場合、新しいフォームオブジェクトインスタンスは、createFormObject(RequestContext)
の呼び出しによってのみ作成 (またはより一般的には取得) されます。新しいフォームオブジェクトインスタンスの作成または読み込みを含むフォーム処理機構をリセットする場合は、代わりにresetForm(RequestContext)
を呼び出します。NOTE: このアクションメソッドはオーバーライドできるように設計されておらず、Spring Web Flow の将来のバージョンでは
final
になる可能性があります。カスタムフォーム設定ロジックを実行する必要がある場合は、フローでこのメソッドを、単一のアクションチェーンの一部として独自のカスタムメソッドとともに呼び出します。- パラメーター:
context
- 「フロースコープ」または「リクエストスコープ」内のデータにアクセスして設定するためのアクション実行コンテキスト- 戻り値:
- バインディングと検証が成功した場合は「成功」
- 例外:
ExceptionSE
- チェック済みまたはチェックされていない回復不可能な例外が発生する- 関連事項:
bindAndValidate
受信したリクエストパラメーターをフォームオブジェクトの許可されたフィールドにバインドし、バリデータが構成されている場合はバインドされたフォームオブジェクトを検証します。NOTE: このアクションメソッドはオーバーライドできるように設計されておらず、Spring Web Flow の将来のバージョンでは
final
になる可能性があります。カスタムバインドおよび検証ロジックを実行する必要がある場合は、フローでこのメソッドを、単一のアクションチェーンの一部として独自のカスタムメソッドとともに呼び出します。または、doBind(RequestContext, DataBinder)
またはdoValidate(RequestContext, Object, Errors)
フックをオーバーライドします。- パラメーター:
context
- 「フロースコープ」または「リクエストスコープ」内のデータにアクセスして設定するためのアクション実行コンテキスト- 戻り値:
- バインディングと検証が成功した場合は「成功」、バインディングおよび / または検証エラーがあった場合は「エラー」
- 例外:
ExceptionSE
- チェック済みまたはチェックされていない回復不可能な例外が発生しました
bind
受信したリクエストパラメーターをフォームオブジェクトの許可されたフィールドにバインドします。NOTE: このアクションメソッドはオーバーライドできるように設計されておらず、Spring Web Flow の将来のバージョンでは
final
になる可能性があります。カスタムデータバインディングロジックを実行する必要がある場合は、フローでこのメソッドを、単一のアクションチェーンの一部として独自のカスタムメソッドとともに呼び出します。または、doBind(RequestContext, DataBinder)
フックをオーバーライドします。- パラメーター:
context
- 「フロースコープ」または「リクエストスコープ」内のデータにアクセスして設定するためのアクション実行コンテキスト- 戻り値:
- バインディングエラーがない場合は「成功」、それ以外の場合は「エラー」
- 例外:
ExceptionSE
- チェック済みまたはチェックされていない回復不可能な例外が発生しました
validate
構成されている場合は、バリデーターを呼び出してフォームオブジェクトを検証します。NOTE: このアクションメソッドはオーバーライドできるように設計されておらず、Spring Web Flow の将来のバージョンでは
final
になる可能性があります。カスタム検証ロジックを実行する必要がある場合は、フローでこのメソッドを、単一のアクションチェーンの一部として独自のカスタムメソッドとともに呼び出します。または、doValidate(RequestContext, Object, Errors)
フックをオーバーライドします。- パラメーター:
context
- 「フロースコープ」または「リクエストスコープ」内のデータにアクセスして設定するためのアクション実行コンテキスト- 戻り値:
- 検証エラーがない場合は「成功」、それ以外の場合は「エラー」
- 例外:
ExceptionSE
- チェック済みまたはチェックされていない回復不可能な例外が発生しました- 関連事項:
resetForm
指定されたスコープ内のフォームオブジェクトをクリアして再作成することで、フォームをリセットします。NOTE: このアクションメソッドはオーバーライドできるように設計されておらず、Spring Web Flow の将来のバージョンでは
final
になる可能性があります。カスタムリセットロジックを実行する必要がある場合は、フローでこのメソッドを、単一のアクションチェーンの一部として独自のカスタムメソッドとともに呼び出します。- パラメーター:
context
- リクエストコンテキスト- 戻り値:
- リセットアクションが正常に完了した場合は「成功」
- 例外:
ExceptionSE
- 例外が発生した場合- 関連事項:
getFormObject
このフォームアクションのフォームオブジェクトを返す便利なメソッド。構成されたスコープ内に見つからない場合は、createFormObject(RequestContext)
の呼び出しによって新しいフォームオブジェクトが作成され、構成されたscope
で公開されます。返されるフォームオブジェクトは
current
フォームオブジェクトになります。- パラメーター:
context
- フロー実行リクエストコンテキスト- 戻り値:
- フォームオブジェクト
- 例外:
ExceptionSE
- 回復不可能な例外が発生した場合
getFormErrors
protected org.springframework.validation.Errors getFormErrors(RequestContext context) throws ExceptionSE このフォームアクションのフォームオブジェクトエラーを返す便利なメソッド。構成されたスコープ内に見つからない場合は、新しいフォームオブジェクトエラーが作成、初期化され、構成されたscope
に公開されます。Errors インスタンスはフォームオブジェクトをラップするため、必要に応じてフォームオブジェクトも作成されることに注意してください (
getFormObject(RequestContext)
を参照)。- パラメーター:
context
- フローリクエストコンテキスト- 戻り値:
- フォームエラー
- 例外:
ExceptionSE
- 回復不可能な例外が発生した場合
createBinder
protected org.springframework.validation.DataBinder createBinder(RequestContext context, ObjectSE formObject) throws ExceptionSE 指定されたフォームオブジェクトとリクエストコンテキストの新しいバインダーインスタンスを作成します。オーバーライドしてカスタム DataBinder サブクラスをプラグインできます。デフォルトの実装では、標準の WebDataBinder が作成され、
initBinder(RequestContext, DataBinder)
とregisterPropertyEditors(PropertyEditorRegistry)
が呼び出されます。- パラメーター:
context
- 「フロースコープ」または「リクエストスコープ」内のデータにアクセスして設定するためのアクション実行コンテキストformObject
- バインドするフォームオブジェクト- 戻り値:
- 新しいバインダーインスタンス
- 例外:
ExceptionSE
- 回復不可能な例外が発生した場合- 関連事項:
doBind
protected void doBind(RequestContext context, org.springframework.validation.DataBinder binder) throws ExceptionSE 指定されたバインダーを使用して、外部コンテキストリクエストパラメーターマップ内の許可されたパラメーターをフォームオブジェクトにバインドします。- パラメーター:
context
- 「フロースコープ」または「リクエストスコープ」内のデータにアクセスして設定するためのアクション実行コンテキストbinder
- 使用するデータバインダー- 例外:
ExceptionSE
- 回復不可能な例外が発生した場合
doValidate
protected void doValidate(RequestContext context, ObjectSE formObject, org.springframework.validation.Errors errors) throws ExceptionSE 登録されたバリデータを使用して、指定されたフォームオブジェクトを検証します。現在実行中のアクションに "validatorMethod" アクションプロパティが指定されている場合は、識別されたバリデータメソッドが呼び出されます。そのようなプロパティが見つからない場合は、デフォルトのvalidate()
メソッドが呼び出されます。- パラメーター:
context
- 「フロースコープ」または「リクエストスコープ」内のデータにアクセスして設定するためのアクション実行コンテキストformObject
- フォームオブジェクトerrors
- 検証エラーを記録するエラーインスタンス- 例外:
ExceptionSE
- 回復不可能な例外が発生した場合
getValidateMethodInvoker
protected org.springframework.webflow.action.DispatchMethodInvoker getValidateMethodInvoker()検証メソッドを呼び出すディスパッチャーを返します。サブクラスはこれをオーバーライドしてカスタムディスパッチャーを返すことができます。getFormObjectAccessor
提供されたリクエストコンテキスト内のフォームオブジェクトにアクセスするための新しいフォームオブジェクトアクセサーを返すファクトリメソッド。- パラメーター:
context
- フローリクエストコンテキスト- 戻り値:
- アクセサー
createFormObject
このform action
によって管理されるバッキングフォームオブジェクトインスタンスを作成します。デフォルトでは、メモリ内に一時的にgetFormObjectClass()
型の新しいフォームオブジェクトインスタンスをインスタンス化しようとします。サブクラスは、データベースやファイルシステムなどの特定の場所またはリソースからフォームオブジェクトをロードする必要がある場合はオーバーライドする必要があります。
作成中に一時的なフォームオブジェクトを組み立てる方法をカスタマイズする必要がある場合は、サブクラスでオーバーライドする必要があります。
- パラメーター:
context
- フローデータにアクセスするためのアクション実行コンテキスト- 戻り値:
- フォームオブジェクト
- 例外:
IllegalStateExceptionSE
-getFormObjectClass()
プロパティが設定されておらず、このメソッドがオーバーライドされていない場合ExceptionSE
- 回復不可能な例外が発生した場合
initBinder
新しいバインダーインスタンスを初期化します。このフックにより、allowed fields
、required fields
、direct field access
などのバインダー設定をカスタマイズできます。createBinder(RequestContext, Object)
によって呼び出されます。カスタムプロパティエディターの登録は、ここではなく
registerPropertyEditors(PropertyEditorRegistry)
で行う必要があることに注意してください。このメソッドは、 新しいデータバインダーが作成された場合にのみ呼び出されます。- パラメーター:
context
- 「フロースコープ」または「リクエストスコープ」内のデータにアクセスして設定するためのアクション実行コンテキストbinder
- 新しいバインダーインスタンス- 関連事項:
registerPropertyEditors
protected void registerPropertyEditors(RequestContext context, org.springframework.beans.PropertyEditorRegistry registry) カスタムエディターを登録すると、データバインディングとフォーム表示時にフォームオブジェクトのフィールドの型変換を実行できます。このメソッドは、フォームエラーの初期化時とdata binder
の初期化時に呼び出されます。プロパティエディターを使用すると、HTML ページなどのユーザーインターフェースに表示するために、オブジェクトをフォーマットされた文字列形式に変換する方法や、フォーマットされた文字列形式から変換する方法を完全に制御できます。
このデフォルトの実装では、
RequestContext
パラメーターを受け取らないメソッドのsimpler form
を呼び出します。- パラメーター:
context
- 「フロースコープ」または「リクエストスコープ」内のデータにアクセスして設定するためのアクション実行コンテキストregistry
- エディターを登録するためのプロパティエディターレジストリ- 関連事項:
registerPropertyEditors
protected void registerPropertyEditors(org.springframework.beans.PropertyEditorRegistry registry) カスタムエディターを登録すると、データバインディングとフォーム表示時にフォームオブジェクトのフィールドの型変換を実行できます。このメソッドは、フォームエラーの初期化時とdata binder
の初期化時に呼び出されます。プロパティエディターを使用すると、HTML ページなどのユーザーインターフェースに表示するために、オブジェクトをフォーマットされた文字列形式に変換する方法や、フォーマットされた文字列形式から変換する方法を完全に制御できます。
このデフォルトの実装では、アクションに設定されている
propertyEditorRegistrar
オブジェクト (存在する場合) のregisterCustomEditors
が呼び出されます。- パラメーター:
registry
- エディターを登録するためのプロパティエディターレジストリ
validationEnabled
フローリクエストコンテキストの状態に応じて検証を実行するかどうかを返します。デフォルトの実装では常に true を返します。- パラメーター:
context
- 「フロースコープ」または「リクエストスコープ」内のデータにアクセスして設定するためのリクエストコンテキスト- 戻り値:
- 検証が有効かどうか
toString