5月 11th, 2008at 0:35

Tags:

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>

実行するとこんな感じ。