アットウィキロゴ

Struts、validator機能をつかう(1)

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>
==================================

タグ:

Java Struts
+ タグ編集
  • タグ:
  • Java
  • Struts
最終更新:2008年05月27日 22:14