|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
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 内の bindrequest - XML形式で定義されたリクエストデータprotected Document validate(InputStream in)
実際の形式チェック部分は、SchemaValidatorに処理を委譲する。
形式チェックエラーが発生した場合、 BindExceptionにエラーを格納する。
in - XMLデータ
protected String[] createReplaceValues(String field,
String[] replaceValues)
置換文字列の最初にフィールド情報を追加し、最後にエラー値を格納する。
field - フィールド値replaceValues - 置換文字列
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||