|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectorg.springframework.validation.DataBinder
org.springframework.web.bind.WebDataBinder
org.springframework.web.bind.ServletRequestDataBinder
jp.terasoluna.fw.web.rich.springmvc.bind.XMLServletRequestDataBinder
public class XMLServletRequestDataBinder
XML形式のリクエストデータをコマンドオブジェクトにバインドするクラス。
以下の処理を順番に行う。
XMLデータの形式チェックにはXMLスキーマを使用する。
実際の形式チェック部分はSchemaValidatorに処理を委譲する。
詳細はSchemaValidator
を参照すること。
XMLデータをオブジェクトに変換する機能はCastorを使用する。 詳細はCastorOXMapperImplクラスを参照すること。
実際のXMLからオブジェクトへ変換する部分はOXMapperに処理を委譲する。
詳細はOXMapper
を参照すること。
データバインド処理で発生するエラーは2種類あり、適切なエラーハンドリングを行う必要がある。
エラーの一覧を以下に記す
形式チェックエラーのハンドリング
形式チェックエラーで生成されるエラーメッセージを、BindExceptionに格納する。
エラーの詳細はXMLErrorReporterEx
を参照すること。
【形式チェックのリソースバンドル設定例】
typeMismatch.number= {0}には{1}値を入力してください.
typeMismatch.boolean= {0}にはboolean値を入力してください.
typeMismatch.date= {0}には正しい日付を入力してください.
typeMismatch.numberMinRange= {0}には{1}以上の{2}値を入力してください.
typeMismatch.numberMaxRange= {0}には{1}以下の{2}値を入力してください.
OXMappingExceptionのハンドリング
データバインド処理で発生する例外はすべて実行時例外であり、 基本的にハンドリングする必要はない。
必要に応じて、例外ハンドラの定義にOXMappingException、 またはそのサブクラスをエントリすること。
OXMappingExceptionの詳細はOXMappingException
を参照すること。
例外ハンドリングの詳細はSimpleMappingExceptionResolver
を参照すること。
【OXMappingExceptionのBean定義例】
<bean id="handlerExceptionResolver"
class="jp.terasoluna.fw.web.rich.springmvc.servlet.handler.SimpleMappingExceptionResolverEx">
<property name="linkedExceptionMappings">
<map>
<entry key="jp.terasoluna.fw.oxm.exception.OXMappingException">
<value>oxmException,8004C028</value>
</entry>
・
・
・
</map>
</property>
</bean>
XMLServletRequestDataBinderCreator
,
ErrorMessage
,
ErrorMessages
,
OXMappingException
,
SchemaValidator
,
OXMapper
,
SimpleMappingExceptionResolver
フィールドの概要 |
---|
クラス org.springframework.web.bind.WebDataBinder から継承されたフィールド |
---|
DEFAULT_FIELD_DEFAULT_PREFIX, DEFAULT_FIELD_MARKER_PREFIX |
クラス org.springframework.validation.DataBinder から継承されたフィールド |
---|
DEFAULT_AUTO_GROW_COLLECTION_LIMIT, DEFAULT_OBJECT_NAME, logger |
コンストラクタの概要 | |
---|---|
XMLServletRequestDataBinder(Object target,
OXMapper oxmapper,
SchemaValidator schemaValidator,
String objectName)
XMLServletRequestDataBinderを生成する。 |
メソッドの概要 | |
---|---|
void |
bind(javax.servlet.ServletRequest request)
XML形式で定義されたリクエストデータをバインドする。 |
protected String[] |
createReplaceValues(String field,
String[] replaceValues)
置換文字列を生成する。 |
protected Document |
validate(InputStream in)
リクエストデータの形式チェックを行う。 |
クラス org.springframework.web.bind.ServletRequestDataBinder から継承されたメソッド |
---|
addBindValues, closeNoCatch |
クラス org.springframework.web.bind.WebDataBinder から継承されたメソッド |
---|
bindMultipart, bindMultipartFiles, checkFieldDefaults, checkFieldMarkers, doBind, getEmptyValue, getFieldDefaultPrefix, getFieldMarkerPrefix, isBindEmptyMultipartFiles, setBindEmptyMultipartFiles, setFieldDefaultPrefix, setFieldMarkerPrefix |
クラス org.springframework.validation.DataBinder から継承されたメソッド |
---|
applyPropertyValues, bind, checkAllowedFields, checkRequiredFields, close, convertIfNecessary, convertIfNecessary, findCustomEditor, getAllowedFields, getAutoGrowCollectionLimit, getBindingErrorProcessor, getBindingResult, getConversionService, getDisallowedFields, getErrors, getInternalBindingResult, getObjectName, getPropertyAccessor, getPropertyEditorRegistry, getRequiredFields, getSimpleTypeConverter, getTarget, getTypeConverter, getValidator, initBeanPropertyAccess, initDirectFieldAccess, isAllowed, isAutoGrowNestedPaths, isIgnoreInvalidFields, isIgnoreUnknownFields, registerCustomEditor, registerCustomEditor, setAllowedFields, setAutoGrowCollectionLimit, setAutoGrowNestedPaths, setBindingErrorProcessor, setConversionService, setDisallowedFields, setExtractOldValueForEditor, setIgnoreInvalidFields, setIgnoreUnknownFields, setMessageCodesResolver, setRequiredFields, setValidator, validate, validate |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
public XMLServletRequestDataBinder(Object target, OXMapper oxmapper, SchemaValidator schemaValidator, String objectName)
target
- コマンドオブジェクトoxmapper
- OXMapperschemaValidator
- SchemaValidatorobjectName
- オブジェクト名メソッドの詳細 |
---|
public void bind(javax.servlet.ServletRequest request)
実際のデータバインド部分は、OXMapperに処理を委譲する。
SchemaValidatorがDIされている場合、形式チェックを実行する。
org.springframework.web.bind.ServletRequestDataBinder
内の bind
request
- XML形式で定義されたリクエストデータprotected Document validate(InputStream in)
実際の形式チェック部分は、SchemaValidatorに処理を委譲する。
形式チェックエラーが発生した場合、 BindExceptionにエラーを格納する。
in
- XMLデータ
protected String[] createReplaceValues(String field, String[] replaceValues)
置換文字列の最初にフィールド情報を追加し、最後にエラー値を格納する。
field
- フィールド値replaceValues
- 置換文字列
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |