1)validator機能をつかうには commons-validator.jar が必要。
commons-validator.jarをWEB-INF/libに配置する。
2)struts-config.xml の一番した辺りに
org.apache.struts.validator.ValidatorPlugIn の設定を追記する。
==================================
</struts-config>
・・・中略・・・
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>
</struts-config>
==================================
3)アクションフォームBeanをvalidator機能を使えるようにする。
validateメソッドはオーバーライド(実装)しないこと!
例:ユーザーIDとパスワードを入力するログイン画面用のアクションフォームBean
==================================
package sample;
import org.apache.struts.validator.ValidatorForm;
public class LoginForm extends ValidatorForm{
/**ユーザーID**/
private String userid;
/**パスワード**/
private String password;
/**アクセッサメソッド**/
public String getUserid(){ return userid;}
public void setUserid(String userid){ this.userid = userid;}
public String getPassword(){ return password;}
public void setPassword(String password){ this.password = password;}
//**validateメソッドはオーバーライド(実装)しないこと、だからコメントアウトしてます
public ActionErrors validate(ActionMapping mapping, HttpServletRequest req){
ActionErrors errors = new ActionErrors();
if((userid == null) || (userid.length() < 1)){
errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionMessage("error.userid"));
}
if((password == null) || (password.length()<=0)){
errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionMessage("error.password"));
}
return errors;
}
**/
}
==================================
4)検証ルールの詳細を定めた設定ファイル
validation.xml(Strutsの標準検証ルール設定ファイル) と
validator-rules.xml(自分で作る検証ルール) を用意
==================================
<form>タグはvalidatorによってチェックを行うActionForm毎に定義
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
<form-validation>
<formset>
<form name="loginForm"> struts-config.xmlに設定したアクションフォームBeanの名前
<field property="name" depends="required"> アクションフォームBeanのプロパティ名 適用する検証ルールの名前
<msg name="required" key="name.invalidate" />
</field>
</form>
</formset>
</form-validation>
==================================
最終更新:2008年05月27日 22:14