5月 11th, 2008at 0:42

Tags:

JSF1.1 メソッドバリデータ

JavaBeansのメソッドを利用してバリデーションを実行することも可能。この場合はvalidate属性を利用する。

メソッドの作成

LoginというJavaBeanにバリデータメソッドを追加する。

/** * 入力チェックを行います。 */public void validateInputData(FacesContext context,         UIComponent component, Object value){

 if(value == null){  context.addMessage(    component.getClientId(context),    new FacesMessage("ユーザIDは必ず入力してください。")); }

 String str = value.toString();

 if("".equals(str)){

  context.addMessage(    component.getClientId(context),    new FacesMessage("ユーザIDは必ず入力してください。"));

  ((UIInput)component).setValid(false);

 }else{

  if(str.length() < 4){   throw new ValidatorException(new FacesMessage("ログイン情報が不正です。"));  }

 }}

このサンプルではnullチェックを行っているが、入力欄に何も入力せずにsubmitして
もvalidator属性で指定したバリデータは動かないみたい。よって、必須かどうかの確認は「required=”true”」などrequired
属性をUIコンポーネントに指定する。

よって必須チェックバリデータは作れない??

JSPで使う

JSP上のUIコンポーネントにvalidate属性を追加する。

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

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

エラーがあるとこんな感じにある。