Spring-MVCプラグイン機能追加2(Validation)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[FrontPage]]2008/01/20からのアクセス回数 &counter;
#contents
* Spring-MVCプラグイン機能追加(Validation) [#ifa6ea9b]
formのvalidation機能をSpring-MVCプラグイン1.1.1に追加しま...
あくまでも、ユーザがvalidation.xmlを編集するためのひな形...
考えです。
** Spring-MVCプラグイン1.1.1のインストール [#v71547b3]
Spring-MVCプラグインの1.1.1のインストールには以下の4ファ...
- archeTypeプラグインjarファイル
#ref(spring-mvc-archetype-1.1.1.jar);
- archeTypeプラグインpomファイル
#ref(spring-mvc-archetype-1.1.1.pom);
- GenMVCプラグインjarファイル
#ref(maven-GenMVC-plugin-1.1.1.jar);
- GenMVCプラグインpomファイル
#ref(maven-GenMVC-plugin-1.1.1.pom);
上記の添付ファイルをダウンロードしてください。近々公開用...
- 次に以下のコマンドを実行してください。
#pre{{
mvn install:install-file \
-Dfile=./spring-mvc-archetype-1.1.1.jar \
-DgroupId=jp.co.pwv.spring-mvc-archetype \
-DartifactId=spring-mvc-archetype \
-Dversion=1.1.1 \
-DpomFile=./spring-mvc-archetype-1.1.1.pom \
-Dpackaging=jar
mvn install:install-file \
-Dfile=./maven-GenMVC-plugin-1.1.1.jar \
-DgroupId=org.apache.maven.plugins \
-DartifactId=maven-GenMVC-plugin \
-Dversion=1.1.1 \
-DpomFile=./maven-GenMVC-plugin-1.1.1.pom \
-Dpackaging=jar
}}
** Validationで追加・変更されたファイル [#xbdc64f0]
Validation機能追加で追加・変更されたファイルは以下の通り...
- pom.xml(変更)
- src/main/resources/form-message.properties(追加)
- src/main/resources/message.properties(追加)
- src/main/webapp/WEB-INF/servlet-def.xml(変更)
- src/main/webapp/WEB-INF/servlet-stub.xml(変更)
- src/main/webapp/WEB-INF/validation.xml(追加)
- src/main/webapp/WEB-INF/validator-rules.xml(追加)
テスト用で追加・変更されたファイルは以下の通りです。
- src/test/resources/form-message.properties(追加)
- src/test/resources/message.properties(追加)
- src/test/WEB-INF/servlet-def.xml(変更)
- src/test/WEB-INF/servlet-stub.xml(変更)
- src/test/WEB-INF/validation.xml(追加)
- src/test/WEB-INF/validator-rules.xml(追加)
内容は、src/mainのものと同じものです。
*** pom.xml [#i965d39f]
validationには、org.springmodulesを使用します。
pom.xmlへの追加は、以下の通りです。
#pre{{
<dependency>
<groupId>org.springmodules</groupId>
<artifactId>spring-modules-validation</artifactId>
<version>0.8</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.1.4</version>
<scope>compile</scope>
</dependency>
}}
*** servlet-stub.xml [#s2b58751]
各フォームコントローラでvalidationを有効にするために、val...
#pre{{
<bean id="memberController" class="example.test.web.E...
parent="baseMemberController">
....
<property name="validator" ref="beanValidator"/>
....
</bean>
}}
*** validation.xml(自動生成される) [#t4f2f1e6]
各フォームへのValidationは、validation.xmlに定義します。
#pre{{
<form name="member">
<field property="address" depends="required">
<arg0 key="member.address" />
</field>
<field property="name" depends="required">
<arg0 key="member.name" />
</field>
</form>
}}
ここでは、フォームの各属性を必須(required)として定義し...
これを適宜変更してください。
*** validator-rules.xml [#i4568220]
validatorが使用する共通ルール、ここではstrutsのvalidation...
*** servlet-def.xml [#g5fc3918]
エラーメッセージ定義とValidation機能のために、servlet-def...
messageSourceとbeanValidatorを定義します。
#pre{{
<!-- Message sources -->
<bean id="messageSource" class="org.springframework.c...
<property name="basenames">
<list>
<value>messages</value>
<value>form-messages</value>
</list>
</property>
</bean>
<!-- Validators -->
<bean id="beanValidator" class=
"org.springmodules.validation.commons.DefaultBeanValida...
<property name="validatorFactory" ref="validatorFactor...
</bean>
<bean id="validatorFactory" class=
"org.springmodules.validation.commons.DefaultValidatorF...
<property name="validationConfigLocations">
<list>
<value>WEB-INF/validator-rules.xml</value>
<value>WEB-INF/validation.xml</value>
</list>
</property>
</bean>
}}
*** message.properties [#e89d99eb]
validator-rulesが使用するエラーメッセージを定義します。
#pre{{
# -- validator errors --
errors.header=
errors.footer=
errors.prefix=<div class="error">
errors.suffix=</div><br/>
errors.required={0} is required.
errors.minlength={0} can not be less than {1} characters.
errors.maxlength={0} can not be greater than {1} characte...
errors.invalid={0} is invalid.
errors.byte={0} must be a byte.
errors.short={0} must be a short.
errors.integer={0} must be an integer.
errors.long={0} must be a long.
errors.float={0} must be a float.
errors.double={0} must be a double.
errors.date={0} is not a date.
errors.range={0} is not in the range {1} through {2}.
errors.creditcard={0} is an invalid credit card number.
errors.email={0} is an invalid e-mail address.
}}
*** form-message.properties(自動生成される) [#zf647b09]
各フォームの属性をエラーメッセージで表示するときの名称をf...
します。
#pre{{
# -- form messages --
# -- Member
member.address=Member address
member.name=Member name
}}
** Validationの動作確認 [#jb8e11fa]
実際にvalidationが正常の動作するかhttp://localhost:8080/t...
一部の値をセットしないで、Save Changesボタンを押すと、以...
出力して、入力画面に戻ってきます。
#ref(validation.jpg);
** validation.xmlで使用できるvalidationルール [#i421355d]
今回は、apache common validatorの機能を使ってvalidationを...
validator-rulesに定義してあるvalidationルールを以下に示し...
|CENTER: Validationルール |CENTER: Validation対象 |
| byte | フィールドがbyteとして代入できる値を含むか否か |
| creditCard | LUHNチェックを行い、有効なカード番号文字列...
| date | フィールドがDateフォーマットに適合する値か否か |
| double | フィールドがdoubleとして代入できる値を含むか否...
| email | フィールドがemailアドレスとしてふさわしい文字列...
| float | フィールドがfloatとして代入できる値を含むか否か |
| floatRange | フィールドの値が指定されたfloat値の範囲に...
| intRange | フィールドの値が指定されたint値の範囲に含ま...
| integer | フィールドがintegerとして代入できる値を含むか...
| long | フィールドがlongとして代入できる値を含むか否か |
| mask | フィールドの文字列が指定されたmaskとマッチするか...
| maxlength | フィールドの文字列の数が指定された値を超え...
| minlength | フィールドの文字列の数が少なくとも指定され...
| required | フィールドが空か否か |
| requiredif | 指定した条件に合致した場合に、フィールドが...
| short | フィールドがshortとして代入できる値を含むか否か |
各ルールの使い方は、http://www.techscore.com/tech/ApacheJ...
*** 型変換をチェックする [#z0f6fa3c]
byte, date, double, float, integer, long, shortは、すべて...
使い方はすべて同じで、
#pre{{
<field property="address" depends="required,byte">
<arg0 key="member.address" />
</field>
}}
のようにdepends属性でrequired,byteの様にrequired,の後に型...
*** 文字列をチェックする [#x2c952e3]
creditCard, email, mask, maxlength, minlengthは文字列をチ...
- creditCard, emailは引数が不要です。
- maskはパターンを示すvarタグが必要です。
例
#pre{{
<field property="address" depends="required,mask">
<arg0 key="member.address" />
<var>
<var-name>mask</var-name>
<var-value>^[0-9A-Za-z]{2,6}$</var-value>
</var>
</field>
}}
- maxlength, minlenghtは、長さを指定するvarタグが必要です。
例
#pre{{
<field property="address" depends="maxlength">
<arg0 key="member.address" />
<var>
<var-name>maxlength</var-name>
<var-value>20</var-value>
</var>
</field>
}}
*** 数値の範囲をチェックする [#hb8cd45c]
intRange, floatRangeは数値の範囲をチェックするルールです。
例
#pre{{
<field property="quantity" depends="required,intRange">
<arg0 key="lineItem.quantity" />
<var>
<var-name>min</var-name>
<var-value>1</var-value>
</var>
<var>
<var-name>max</var-name>
<var-value>10</var-value>
</var>
</field>
}}
** コメント [#l5b03105]
この記事は、
#vote(おもしろかった[10],そうでもない[2],わかりずらい[13])
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha
終了行:
[[FrontPage]]2008/01/20からのアクセス回数 &counter;
#contents
* Spring-MVCプラグイン機能追加(Validation) [#ifa6ea9b]
formのvalidation機能をSpring-MVCプラグイン1.1.1に追加しま...
あくまでも、ユーザがvalidation.xmlを編集するためのひな形...
考えです。
** Spring-MVCプラグイン1.1.1のインストール [#v71547b3]
Spring-MVCプラグインの1.1.1のインストールには以下の4ファ...
- archeTypeプラグインjarファイル
#ref(spring-mvc-archetype-1.1.1.jar);
- archeTypeプラグインpomファイル
#ref(spring-mvc-archetype-1.1.1.pom);
- GenMVCプラグインjarファイル
#ref(maven-GenMVC-plugin-1.1.1.jar);
- GenMVCプラグインpomファイル
#ref(maven-GenMVC-plugin-1.1.1.pom);
上記の添付ファイルをダウンロードしてください。近々公開用...
- 次に以下のコマンドを実行してください。
#pre{{
mvn install:install-file \
-Dfile=./spring-mvc-archetype-1.1.1.jar \
-DgroupId=jp.co.pwv.spring-mvc-archetype \
-DartifactId=spring-mvc-archetype \
-Dversion=1.1.1 \
-DpomFile=./spring-mvc-archetype-1.1.1.pom \
-Dpackaging=jar
mvn install:install-file \
-Dfile=./maven-GenMVC-plugin-1.1.1.jar \
-DgroupId=org.apache.maven.plugins \
-DartifactId=maven-GenMVC-plugin \
-Dversion=1.1.1 \
-DpomFile=./maven-GenMVC-plugin-1.1.1.pom \
-Dpackaging=jar
}}
** Validationで追加・変更されたファイル [#xbdc64f0]
Validation機能追加で追加・変更されたファイルは以下の通り...
- pom.xml(変更)
- src/main/resources/form-message.properties(追加)
- src/main/resources/message.properties(追加)
- src/main/webapp/WEB-INF/servlet-def.xml(変更)
- src/main/webapp/WEB-INF/servlet-stub.xml(変更)
- src/main/webapp/WEB-INF/validation.xml(追加)
- src/main/webapp/WEB-INF/validator-rules.xml(追加)
テスト用で追加・変更されたファイルは以下の通りです。
- src/test/resources/form-message.properties(追加)
- src/test/resources/message.properties(追加)
- src/test/WEB-INF/servlet-def.xml(変更)
- src/test/WEB-INF/servlet-stub.xml(変更)
- src/test/WEB-INF/validation.xml(追加)
- src/test/WEB-INF/validator-rules.xml(追加)
内容は、src/mainのものと同じものです。
*** pom.xml [#i965d39f]
validationには、org.springmodulesを使用します。
pom.xmlへの追加は、以下の通りです。
#pre{{
<dependency>
<groupId>org.springmodules</groupId>
<artifactId>spring-modules-validation</artifactId>
<version>0.8</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.1.4</version>
<scope>compile</scope>
</dependency>
}}
*** servlet-stub.xml [#s2b58751]
各フォームコントローラでvalidationを有効にするために、val...
#pre{{
<bean id="memberController" class="example.test.web.E...
parent="baseMemberController">
....
<property name="validator" ref="beanValidator"/>
....
</bean>
}}
*** validation.xml(自動生成される) [#t4f2f1e6]
各フォームへのValidationは、validation.xmlに定義します。
#pre{{
<form name="member">
<field property="address" depends="required">
<arg0 key="member.address" />
</field>
<field property="name" depends="required">
<arg0 key="member.name" />
</field>
</form>
}}
ここでは、フォームの各属性を必須(required)として定義し...
これを適宜変更してください。
*** validator-rules.xml [#i4568220]
validatorが使用する共通ルール、ここではstrutsのvalidation...
*** servlet-def.xml [#g5fc3918]
エラーメッセージ定義とValidation機能のために、servlet-def...
messageSourceとbeanValidatorを定義します。
#pre{{
<!-- Message sources -->
<bean id="messageSource" class="org.springframework.c...
<property name="basenames">
<list>
<value>messages</value>
<value>form-messages</value>
</list>
</property>
</bean>
<!-- Validators -->
<bean id="beanValidator" class=
"org.springmodules.validation.commons.DefaultBeanValida...
<property name="validatorFactory" ref="validatorFactor...
</bean>
<bean id="validatorFactory" class=
"org.springmodules.validation.commons.DefaultValidatorF...
<property name="validationConfigLocations">
<list>
<value>WEB-INF/validator-rules.xml</value>
<value>WEB-INF/validation.xml</value>
</list>
</property>
</bean>
}}
*** message.properties [#e89d99eb]
validator-rulesが使用するエラーメッセージを定義します。
#pre{{
# -- validator errors --
errors.header=
errors.footer=
errors.prefix=<div class="error">
errors.suffix=</div><br/>
errors.required={0} is required.
errors.minlength={0} can not be less than {1} characters.
errors.maxlength={0} can not be greater than {1} characte...
errors.invalid={0} is invalid.
errors.byte={0} must be a byte.
errors.short={0} must be a short.
errors.integer={0} must be an integer.
errors.long={0} must be a long.
errors.float={0} must be a float.
errors.double={0} must be a double.
errors.date={0} is not a date.
errors.range={0} is not in the range {1} through {2}.
errors.creditcard={0} is an invalid credit card number.
errors.email={0} is an invalid e-mail address.
}}
*** form-message.properties(自動生成される) [#zf647b09]
各フォームの属性をエラーメッセージで表示するときの名称をf...
します。
#pre{{
# -- form messages --
# -- Member
member.address=Member address
member.name=Member name
}}
** Validationの動作確認 [#jb8e11fa]
実際にvalidationが正常の動作するかhttp://localhost:8080/t...
一部の値をセットしないで、Save Changesボタンを押すと、以...
出力して、入力画面に戻ってきます。
#ref(validation.jpg);
** validation.xmlで使用できるvalidationルール [#i421355d]
今回は、apache common validatorの機能を使ってvalidationを...
validator-rulesに定義してあるvalidationルールを以下に示し...
|CENTER: Validationルール |CENTER: Validation対象 |
| byte | フィールドがbyteとして代入できる値を含むか否か |
| creditCard | LUHNチェックを行い、有効なカード番号文字列...
| date | フィールドがDateフォーマットに適合する値か否か |
| double | フィールドがdoubleとして代入できる値を含むか否...
| email | フィールドがemailアドレスとしてふさわしい文字列...
| float | フィールドがfloatとして代入できる値を含むか否か |
| floatRange | フィールドの値が指定されたfloat値の範囲に...
| intRange | フィールドの値が指定されたint値の範囲に含ま...
| integer | フィールドがintegerとして代入できる値を含むか...
| long | フィールドがlongとして代入できる値を含むか否か |
| mask | フィールドの文字列が指定されたmaskとマッチするか...
| maxlength | フィールドの文字列の数が指定された値を超え...
| minlength | フィールドの文字列の数が少なくとも指定され...
| required | フィールドが空か否か |
| requiredif | 指定した条件に合致した場合に、フィールドが...
| short | フィールドがshortとして代入できる値を含むか否か |
各ルールの使い方は、http://www.techscore.com/tech/ApacheJ...
*** 型変換をチェックする [#z0f6fa3c]
byte, date, double, float, integer, long, shortは、すべて...
使い方はすべて同じで、
#pre{{
<field property="address" depends="required,byte">
<arg0 key="member.address" />
</field>
}}
のようにdepends属性でrequired,byteの様にrequired,の後に型...
*** 文字列をチェックする [#x2c952e3]
creditCard, email, mask, maxlength, minlengthは文字列をチ...
- creditCard, emailは引数が不要です。
- maskはパターンを示すvarタグが必要です。
例
#pre{{
<field property="address" depends="required,mask">
<arg0 key="member.address" />
<var>
<var-name>mask</var-name>
<var-value>^[0-9A-Za-z]{2,6}$</var-value>
</var>
</field>
}}
- maxlength, minlenghtは、長さを指定するvarタグが必要です。
例
#pre{{
<field property="address" depends="maxlength">
<arg0 key="member.address" />
<var>
<var-name>maxlength</var-name>
<var-value>20</var-value>
</var>
</field>
}}
*** 数値の範囲をチェックする [#hb8cd45c]
intRange, floatRangeは数値の範囲をチェックするルールです。
例
#pre{{
<field property="quantity" depends="required,intRange">
<arg0 key="lineItem.quantity" />
<var>
<var-name>min</var-name>
<var-value>1</var-value>
</var>
<var>
<var-name>max</var-name>
<var-value>10</var-value>
</var>
</field>
}}
** コメント [#l5b03105]
この記事は、
#vote(おもしろかった[10],そうでもない[2],わかりずらい[13])
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha
ページ名:
SmartDoc