public class BeanValidationStrategy extends java.lang.Object implements ValidationStrategy
本実装ではバリデーションエラーが発生した場合に、
リクエストパラメータから値をコピーしたオブジェクト(Bean)が、
リクエストスコープに格納する機能を持つ。
これは、バリデーションエラーが発生した時でも、JSP等でリクエストパラメータの値を
参照できるようにするためである。
本機能を有効化するにはsetCopyBeanToRequestScopeOnError(boolean)
に真を設定すること。
Constructor and Description |
---|
BeanValidationStrategy()
BeanValidationStrategy を生成する。 |
Modifier and Type | Method and Description |
---|---|
void |
setCopyBeanToRequestScopeOnError(boolean copyBeanToRequestScopeOnError)
バリデーションエラー時に、Beanをリクエストスコープにコピーするかどうかを
設定する(デフォルトは「コピーしない」)。
|
void |
setFormFactory(BeanValidationFormFactory formFactory) |
protected static java.util.List<Message> |
sortMessages(java.util.List<Message> messages,
ServletExecutionContext context,
InjectForm injectForm)
メッセージをソートする。
|
java.io.Serializable |
validate(HttpRequest request,
InjectForm annotation,
boolean notUse,
ServletExecutionContext context)
リクエスト内容をバリデーションし、エラーがなければ、
InjectForm のform属性で指定された型のオブジェクトを生成して返す. |
@Published(tag="architect") public BeanValidationStrategy()
BeanValidationStrategy
を生成する。public java.io.Serializable validate(HttpRequest request, InjectForm annotation, boolean notUse, ServletExecutionContext context)
ValidationStrategy
InjectForm
のvalidate
in interface ValidationStrategy
request
- リクエストannotation
- InjectFormアノテーションnotUse
- バリデーションメソッドの指定がある場合true
context
- 実行コンテキスト@Published(tag="architect") protected static java.util.List<Message> sortMessages(java.util.List<Message> messages, ServletExecutionContext context, InjectForm injectForm)
ソートされる順序は、ServletRequest.getParameterNames()
の順となる。
ServletRequest.getParameterNames()
に存在しない項目は、メッセージリストの末尾に移動する。
messages
- ソート対象のメッセージリストcontext
- Servlet実行コンテキストinjectForm
- InjectForm
アノテーションpublic void setCopyBeanToRequestScopeOnError(boolean copyBeanToRequestScopeOnError)
copyBeanToRequestScopeOnError
- コピーする場合は真を指定public void setFormFactory(BeanValidationFormFactory formFactory)