Package nablarch.common.web.validator
Class BeanValidationStrategy
java.lang.Object
nablarch.common.web.validator.BeanValidationStrategy
- All Implemented Interfaces:
ValidationStrategy
@Published(tag="architect")
public class BeanValidationStrategy
extends Object
implements ValidationStrategy
BeanValidationを使用する場合のリクエスト内容のバリデーション、オブジェクト(Bean)生成ロジック.
本実装ではバリデーションエラーが発生した場合に、
リクエストパラメータから値をコピーしたオブジェクト(Bean)が、
リクエストスコープに格納する機能を持つ。
これは、バリデーションエラーが発生した時でも、JSP等でリクエストパラメータの値を
参照できるようにするためである。
本機能を有効化するにはsetCopyBeanToRequestScopeOnError(boolean)に真を設定すること。
- Author:
- sumida
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected SerializablecreateForm(HttpRequest request, InjectForm annotation) InjectFormのform属性で指定された型のフォームを生成する。voidsetCopyBeanToRequestScopeOnError(boolean copyBeanToRequestScopeOnError) バリデーションエラー時に、Beanをリクエストスコープにコピーするかどうかを 設定する(デフォルトは「コピーしない」)。voidsetFormFactory(BeanValidationFormFactory formFactory) sortMessages(List<Message> messages, ServletExecutionContext context, InjectForm injectForm) メッセージをソートする。validate(HttpRequest request, InjectForm annotation, boolean notUse, ServletExecutionContext context) リクエスト内容をバリデーションし、エラーがなければ、InjectFormの
form属性で指定された型のオブジェクトを生成して返す.
-
Constructor Details
-
BeanValidationStrategy
public BeanValidationStrategy()BeanValidationStrategyを生成する。
-
-
Method Details
-
createForm
InjectFormのform属性で指定された型のフォームを生成する。- Parameters:
request- リクエストannotation- InjectFormアノテーション- Returns:
- リクエストパラメータが登録されたフォーム
-
validate
public Serializable validate(HttpRequest request, InjectForm annotation, boolean notUse, ServletExecutionContext context) Description copied from interface:ValidationStrategyリクエスト内容をバリデーションし、エラーがなければ、InjectFormの
form属性で指定された型のオブジェクトを生成して返す.- Specified by:
validatein interfaceValidationStrategy- Parameters:
request- リクエストannotation- InjectFormアノテーションnotUse- バリデーションメソッドの指定がある場合truecontext- 実行コンテキスト- Returns:
- バリデーション済みのオブジェクト
-
sortMessages
protected 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
-