JSF1.1 カスタムバリデータ

感想おまちしてます!

メソッドバリデータと似たようなものとして、validatorタグを利用したカスタムバリデータを作成できる。これを作っておけば、カスタムバリデータタグに応用することができる。

jsf-api.jarをみるとバリデータはvalidatorパッケージ以下に配置している。

スポンサーリンク

バリデータクラス作成

package com.daipresents.kingdom.validator;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.component.UIInput;
import javax.faces.context.FacesContext;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;

public class LengthValidator implements Validator {

 public void validate(FacesContext arg0, UIComponent arg1, Object arg2)
   throws ValidatorException {
  
  String str = arg2.toString();
  if(str.length() < 4){
   throw new ValidatorException(new FacesMessage("ログイン情報が不正です。"));
  }

 }

}

faces-confix.mlへの登録

<validator>
 <validator-id>LengthValidator</validator-id>
 <validator-class>
  com.daipresents.kingdom.validator.LengthValidator
 </validator-class>
</validator>

JSPで使用

<div>
 <h:messages />
</div>

<div>
 <h:outputText value="ユーザID" />
 <h:inputText value="#{Login.userID}">
  <f:validator validatorId="LengthValidator"/>
 </h:inputText>
</div>

実行するとこんな感じ。

pic20080511_004341