Class BeanValidationStrategy

java.lang.Object
nablarch.common.web.validator.BeanValidationStrategy
All Implemented Interfaces:
ValidationStrategy

public class BeanValidationStrategy extends Object implements ValidationStrategy
BeanValidationを使用する場合のリクエスト内容のバリデーション、オブジェクト(Bean)生成ロジック.

本実装ではバリデーションエラーが発生した場合に、 リクエストパラメータから値をコピーしたオブジェクト(Bean)が、 リクエストスコープに格納する機能を持つ。 これは、バリデーションエラーが発生した時でも、JSP等でリクエストパラメータの値を 参照できるようにするためである。 本機能を有効化するにはsetCopyBeanToRequestScopeOnError(boolean)に真を設定すること。

Author:
sumida
  • Constructor Details

    • BeanValidationStrategy

      @Published(tag="architect") public BeanValidationStrategy()
      BeanValidationStrategyを生成する。
  • Method Details

    • validate

      public Serializable validate(HttpRequest request, InjectForm annotation, boolean notUse, ServletExecutionContext context)
      Description copied from interface: ValidationStrategy
      リクエスト内容をバリデーションし、エラーがなければ、InjectForm
      form属性で指定された型のオブジェクトを生成して返す.
      Specified by:
      validate in interface ValidationStrategy
      Parameters:
      request - リクエスト
      annotation - InjectFormアノテーション
      notUse - バリデーションメソッドの指定がある場合true
      context - 実行コンテキスト
      Returns:
      バリデーション済みのオブジェクト
    • sortMessages

      @Published(tag="architect") protected static List<Message> sortMessages(List<Message> messages, ServletExecutionContext context, InjectForm injectForm)
      メッセージをソートする。

      ソートされる順序は、ServletRequest.getParameterNames()の順となる。 ServletRequest.getParameterNames()に存在しない項目は、メッセージリストの末尾に移動する。

      Parameters:
      messages - ソート対象のメッセージリスト
      context - Servlet実行コンテキスト
      injectForm - InjectFormアノテーション
      Returns:
      ソートしたメッセージリスト
    • setCopyBeanToRequestScopeOnError

      public void setCopyBeanToRequestScopeOnError(boolean copyBeanToRequestScopeOnError)
      バリデーションエラー時に、Beanをリクエストスコープにコピーするかどうかを 設定する(デフォルトは「コピーしない」)。
      Parameters:
      copyBeanToRequestScopeOnError - コピーする場合は真を指定
    • setFormFactory

      public void setFormFactory(BeanValidationFormFactory formFactory)