クラス FormAction

実装されたすべてのインターフェース:
org.springframework.beans.factory.InitializingBeanAction

public class FormAction extends MultiAction implements org.springframework.beans.factory.InitializingBean
入力フォームを処理する共通ロジックを実装するマルチアクション。このクラスは、Spring Web データバインディングコードを使用してバインディングと検証を行います。

いくつかのアクション実行メソッドが提供されています:

  • 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 つの方法は次のとおりです。

  1. フォームを表示するためのビューステートを作成します。そのステートのレンダリングアクションで、setupForm を呼び出して、新しいフォームを表示できるように準備します。
  2. 一致する「送信」遷移で、bindAndValidate を呼び出して受信リクエストパラメーターをフォームオブジェクトにバインドし、フォームオブジェクトを検証するアクションを実行します。
  3. バインディングまたは検証エラーがある場合、遷移は許可されず、ビューステートが自動的に再入力されます。
  4. バインディングと検証が成功した場合は、"processSubmit" (またはその他の適切な名前) というアクション状態に進みます。これにより、"processSubmit" というアクションメソッドが呼び出されます。このメソッドは、ビジネスロジックとの対話など、フォームの送信を処理するためにサブクラスに提供する必要があります。
  5. ビジネス処理が正常であれば、ビューステートに進み、成功ビューを表示します。

このようなフォームフローの実装例を次に示します。

     <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) を呼び出します。

FormAction の構成可能なプロパティ
名前 default 説明
formObjectNameformObject フォームオブジェクトの名前。フォームオブジェクトは、この名前を使用して構成されたスコープに設定されます。
formObjectClassnull このアクションのフォームオブジェクトクラス。このクラスのインスタンスが設定され、検証されます。バリデーターを使用する場合に必須です。
formObjectScopeflow フォームオブジェクトが配置されるスコープ。フロースコープに配置されると、オブジェクトはキャッシュされ、フローの存続期間中は以前の値を保持しながら再利用されます。リクエストスコープでは、フロー実行へのリクエストごとに新しいフォームオブジェクトインスタンスが作成されます。
formErrorsScopeflash フォームオブジェクトエラーインスタンスが配置されるスコープ。フラッシュスコープに配置された場合、フォームエラーは次のユーザーイベントが通知されるまでキャッシュされます。
propertyEditorRegistrarnull カスタムプロパティエディターをデータバインダーに登録するために使用される戦略。これは、registerPropertyEditors(PropertyEditorRegistry) フックメソッドをオーバーライドする代わりに使用できます。
バリデーター null このアクションの検証ツール。検証ツールは指定されたフォームオブジェクトクラスをサポートする必要があります。
messageCodesResolvernull エラーをメッセージコードに解決するために使用する戦略を設定します。
作成者:
Erwin Vervaet, Keith Donald
関連事項:
  • ネストされたクラスのサマリー

    クラス 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)
    指定されたフォームオブジェクトクラスのインスタンスを管理する新しいフォームアクションを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    受信したリクエストパラメーターをフォームオブジェクトの許可されたフィールドにバインドします。
    受信したリクエストパラメーターをフォームオブジェクトの許可されたフィールドにバインドし、バリデータが構成されている場合はバインドされたフォームオブジェクトを検証します。
    protected org.springframework.validation.DataBinder
    createBinder(RequestContext context, ObjectSE formObject)
    指定されたフォームオブジェクトとリクエストコンテキストの新しいバインダーインスタンスを作成します。
    protected ObjectSE
    この 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
    このフォームアクションのフォームオブジェクトエラーを返す便利なメソッドです。
    Errors オブジェクトが配置されるスコープを取得します。
    protected ObjectSE
    このフォームアクションのフォームオブジェクトを返す便利なメソッドです。
    提供されたリクエストコンテキスト内のフォームオブジェクトにアクセスするための新しいフォームオブジェクトアクセサーを返すファクトリメソッド。
    このアクションのフォームオブジェクトクラスを返します。
    設定されたスコープ内のフォームオブジェクトの名前を返します。
    フォームオブジェクトが配置されるスコープを取得します。
    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)
    カスタムエディターを登録して、データバインディングおよびフォームの表示中にフォームオブジェクトのフィールドの型変換を実行します。
    指定されたスコープ内のフォームオブジェクトをクリアして再作成することで、フォームをリセットします。
    void
    Errors オブジェクトが配置されるスコープを設定します。
    void
    setFormObjectClass(ClassSE<?> formObjectClass)
    このアクションのフォームオブジェクトクラスを設定します。
    void
    setFormObjectName(StringSE formObjectName)
    設定されたスコープ内のフォームオブジェクトの名前を設定します。
    void
    フォームオブジェクトが配置される範囲を設定します。
    void
    setMessageCodesResolver(org.springframework.validation.MessageCodesResolver messageCodesResolver)
    エラーをメッセージコードに解決するために使用する戦略を設定します。
    void
    setPropertyEditorRegistrar(org.springframework.beans.PropertyEditorRegistrar propertyEditorRegistrar)
    このアクションのデータバインダーのプロパティエディター登録戦略を設定します。
    新しいフォームに表示するためのフォームオブジェクトを準備し、必要に応じてフォームオブジェクトを作成して getFormObjectScope() にキャッシュします。
    void
    setValidator(org.springframework.validation.Validator validator)
    このアクションのバリデーターを設定します。
    構成されている場合は、バリデーターを呼び出してフォームオブジェクトを検証します。
    protected boolean
    フローリクエストコンテキストの状態に応じて検証を実行する必要があるかどうかを返します。

    クラス 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
  • フィールドの詳細

    • DEFAULT_FORM_OBJECT_NAME

      public static final StringSE DEFAULT_FORM_OBJECT_NAME
      デフォルトのフォームオブジェクト名 ("formObject" )。
      関連事項:
    • VALIDATOR_METHOD_ATTRIBUTE

      public static final StringSE VALIDATOR_METHOD_ATTRIBUTE
      部分的なウィザードページ検証 ("validatorMethod" ) をサポートするために、構成された検証インスタンスで呼び出す必要があるメソッドを識別するオプションの属性。
      関連事項:
  • コンストラクターの詳細

    • FormAction

      public FormAction()
      Bean スタイルのデフォルトコンストラクター。デフォルトのプロパティ値に依存する、最初は未構成の FormAction インスタンスを作成します。このコンストラクターを直接呼び出すクライアントは、formObjectClass プロパティを設定するか、createFormObject(RequestContext) をオーバーライドする必要があります。
      関連事項:
    • FormAction

      public FormAction(ClassSE<?> formObjectClass)
      指定されたフォームオブジェクトクラスのインスタンスを管理する新しいフォームアクションを作成します。
      パラメーター:
      formObjectClass - フォームオブジェクトのクラス (インスタンス化可能でなければならない)
  • メソッドの詳細

    • getFormObjectName

      public StringSE getFormObjectName()
      設定されたスコープ内のフォームオブジェクトの名前を返します。
    • setFormObjectName

      public void setFormObjectName(StringSE formObjectName)
      設定されたスコープ内のフォームオブジェクトの名前を設定します。フォームオブジェクトは、この名前で設定されたスコープに含まれます。
    • getFormObjectClass

      public ClassSE<?> getFormObjectClass()
      このアクションのフォームオブジェクトクラスを返します。
    • setFormObjectClass

      public void setFormObjectClass(ClassSE<?> formObjectClass)
      このアクションのフォームオブジェクトクラスを設定します。このクラスのインスタンスが設定され、検証されます。フォームアクション (setValidator(Validator)) で検証を登録する場合、これは必須のプロパティです。

      このメソッドが呼び出された時点でフォームオブジェクト名が設定されていない場合、ClassUtils.getShortNameAsProperty(java.lang.Class) を使用して、提供されたフォームオブジェクトクラスに基づいてフォームオブジェクト名が自動的に生成されます。

    • getFormObjectScope

      public ScopeType getFormObjectScope()
      フォームオブジェクトが配置されるスコープを取得します。
    • setFormObjectScope

      public void setFormObjectScope(ScopeType scopeType)
      フォームオブジェクトが配置されるスコープを設定します。設定されていない場合のデフォルトは flow scope です。
    • getFormErrorsScope

      public ScopeType getFormErrorsScope()
      Errors オブジェクトが配置されるスコープを取得します。
    • setFormErrorsScope

      public void setFormErrorsScope(ScopeType errorsScope)
      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 です。つまり、データバインダーのデフォルトの戦略を使用します。

      関連事項:
    • initAction

      protected void initAction()
      クラスからコピーされた説明: AbstractAction
      アクション初期化コールバック。サブクラスによってオーバーライドされ、カスタム初期化ロジックが実行される場合があります。

      このフックは、アクションの初期化をトリガーするために Spring InitializingBean メカニズムを使用するため、このアクションが Spring アプリケーションコンテキストにデプロイされている場合にのみ呼び出されることに注意してください。

      オーバーライド:
      クラス AbstractActioninitAction 
    • setupForm

      public Event setupForm(RequestContext context) throws ExceptionSE
      新しいフォームに表示するためのフォームオブジェクトを準備し、必要に応じてフォームオブジェクトを作成して getFormObjectScope() にキャッシュします。また、テキストフィールドなどの UI コントロールでフォームオブジェクトの値をフォーマットするためのカスタムプロパティエディターもインストールします。

      構成された scope にフォームオブジェクトがまだ存在しない場合、新しいフォームオブジェクトインスタンスは、createFormObject(RequestContext) の呼び出しによってのみ作成 (またはより一般的には取得) されます。新しいフォームオブジェクトインスタンスの作成または読み込みを含むフォーム処理機構をリセットする場合は、代わりに resetForm(RequestContext) を呼び出します。

      NOTE: このアクションメソッドはオーバーライドできるように設計されておらず、Spring Web Flow の将来のバージョンでは final になる可能性があります。カスタムフォーム設定ロジックを実行する必要がある場合は、フローでこのメソッドを、単一のアクションチェーンの一部として独自のカスタムメソッドとともに呼び出します。

      パラメーター:
      context - 「フロースコープ」または「リクエストスコープ」内のデータにアクセスして設定するためのアクション実行コンテキスト
      戻り値:
      バインディングと検証が成功した場合は「成功」
      例外:
      ExceptionSE - チェック済みまたはチェックされていない回復不可能な例外が発生する
      関連事項:
    • bindAndValidate

      public Event bindAndValidate(RequestContext context) throws ExceptionSE
      受信したリクエストパラメーターをフォームオブジェクトの許可されたフィールドにバインドし、バリデータが構成されている場合はバインドされたフォームオブジェクトを検証します。

      NOTE: このアクションメソッドはオーバーライドできるように設計されておらず、Spring Web Flow の将来のバージョンでは final になる可能性があります。カスタムバインドおよび検証ロジックを実行する必要がある場合は、フローでこのメソッドを、単一のアクションチェーンの一部として独自のカスタムメソッドとともに呼び出します。または、doBind(RequestContext, DataBinder) または doValidate(RequestContext, Object, Errors) フックをオーバーライドします。

      パラメーター:
      context - 「フロースコープ」または「リクエストスコープ」内のデータにアクセスして設定するためのアクション実行コンテキスト
      戻り値:
      バインディングと検証が成功した場合は「成功」、バインディングおよび / または検証エラーがあった場合は「エラー」
      例外:
      ExceptionSE - チェック済みまたはチェックされていない回復不可能な例外が発生しました
    • bind

      public Event bind(RequestContext context) throws ExceptionSE
      受信したリクエストパラメーターをフォームオブジェクトの許可されたフィールドにバインドします。

      NOTE: このアクションメソッドはオーバーライドできるように設計されておらず、Spring Web Flow の将来のバージョンでは final になる可能性があります。カスタムデータバインディングロジックを実行する必要がある場合は、フローでこのメソッドを、単一のアクションチェーンの一部として独自のカスタムメソッドとともに呼び出します。または、doBind(RequestContext, DataBinder) フックをオーバーライドします。

      パラメーター:
      context - 「フロースコープ」または「リクエストスコープ」内のデータにアクセスして設定するためのアクション実行コンテキスト
      戻り値:
      バインディングエラーがない場合は「成功」、それ以外の場合は「エラー」
      例外:
      ExceptionSE - チェック済みまたはチェックされていない回復不可能な例外が発生しました
    • validate

      public Event validate(RequestContext context) throws ExceptionSE
      構成されている場合は、バリデーターを呼び出してフォームオブジェクトを検証します。

      NOTE: このアクションメソッドはオーバーライドできるように設計されておらず、Spring Web Flow の将来のバージョンでは final になる可能性があります。カスタム検証ロジックを実行する必要がある場合は、フローでこのメソッドを、単一のアクションチェーンの一部として独自のカスタムメソッドとともに呼び出します。または、doValidate(RequestContext, Object, Errors) フックをオーバーライドします。

      パラメーター:
      context - 「フロースコープ」または「リクエストスコープ」内のデータにアクセスして設定するためのアクション実行コンテキスト
      戻り値:
      検証エラーがない場合は「成功」、それ以外の場合は「エラー」
      例外:
      ExceptionSE - チェック済みまたはチェックされていない回復不可能な例外が発生しました
      関連事項:
    • resetForm

      public Event resetForm(RequestContext context) throws ExceptionSE
      指定されたスコープ内のフォームオブジェクトをクリアして再作成することで、フォームをリセットします。

      NOTE: このアクションメソッドはオーバーライドできるように設計されておらず、Spring Web Flow の将来のバージョンでは final になる可能性があります。カスタムリセットロジックを実行する必要がある場合は、フローでこのメソッドを、単一のアクションチェーンの一部として独自のカスタムメソッドとともに呼び出します。

      パラメーター:
      context - リクエストコンテキスト
      戻り値:
      リセットアクションが正常に完了した場合は「成功」
      例外:
      ExceptionSE - 例外が発生した場合
      関連事項:
    • getFormObject

      protected ObjectSE getFormObject(RequestContext context) throws ExceptionSE
      このフォームアクションのフォームオブジェクトを返す便利なメソッド。構成されたスコープ内に見つからない場合は、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

      protected FormObjectAccessor getFormObjectAccessor(RequestContext context)
      提供されたリクエストコンテキスト内のフォームオブジェクトにアクセスするための新しいフォームオブジェクトアクセサーを返すファクトリメソッド。
      パラメーター:
      context - フローリクエストコンテキスト
      戻り値:
      アクセサー
    • createFormObject

      protected ObjectSE createFormObject(RequestContext context) throws ExceptionSE
      この form action によって管理されるバッキングフォームオブジェクトインスタンスを作成します。デフォルトでは、メモリ内に一時的に getFormObjectClass() 型の新しいフォームオブジェクトインスタンスをインスタンス化しようとします。

      サブクラスは、データベースやファイルシステムなどの特定の場所またはリソースからフォームオブジェクトをロードする必要がある場合はオーバーライドする必要があります。

      作成中に一時的なフォームオブジェクトを組み立てる方法をカスタマイズする必要がある場合は、サブクラスでオーバーライドする必要があります。

      パラメーター:
      context - フローデータにアクセスするためのアクション実行コンテキスト
      戻り値:
      フォームオブジェクト
      例外:
      IllegalStateExceptionSE - getFormObjectClass() プロパティが設定されておらず、このメソッドがオーバーライドされていない場合
      ExceptionSE - 回復不可能な例外が発生した場合
    • initBinder

      protected void initBinder(RequestContext context, org.springframework.validation.DataBinder binder)
      新しいバインダーインスタンスを初期化します。このフックにより、allowed fieldsrequired fieldsdirect 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

      protected boolean validationEnabled(RequestContext context)
      フローリクエストコンテキストの状態に応じて検証を実行するかどうかを返します。デフォルトの実装では常に true を返します。
      パラメーター:
      context - 「フロースコープ」または「リクエストスコープ」内のデータにアクセスして設定するためのリクエストコンテキスト
      戻り値:
      検証が有効かどうか
    • toString

      public StringSE toString()
      オーバーライド:
      クラス ObjectSEtoString