コンバータ・バリデータ JSFによるWebアプリケーション開発 第10回 1 ここでの内容 コンバータ・バリデータの手法について学 ぶ。 2 コンバータ 3 コンバータとは何か h:inputText 要素のようなテキスト入力フィールド には、基本的には String 型のデータが入る。 コンバータとは、テキスト入力フィールドと Managed Beanのプロパティ間でデータ変換を行 うもの。 例えば、Integer や Date 型に変換 Integer や Date 型のオブジェクトの値を、 h:outputText などで出力 4 Managed Bean // number プロパティは Integer 型 public Integer getNumber() { return number; } // date プロパティは Data 型 public Date getDate() { return date; } 5 このサンプルの出力例 6 number プロパティと UIコンポーネントとの対応 (1) <h:inputText id="number1" converter="javax.faces.Integer" value="#{ParameterBean.number}“ /> <h:outputText id="number2" value="#{ParameterBean.number}" /> 7 number プロパティと UIコンポーネントとの対応 (2) converter="javax.faces.Integer“ value="#{ParameterBean.number}“ 入力されたデータを、Integer 型に変換す るコンバータを指定する。 データは、ParameterBean の number プ ロパティに保存する。 8 JSF標準のコンバータ BigDecimalConverter BigIntegerConverter BooleanConverter ByteConverter CharacterConverter DateTimeConverter DoubleConverter FloatConverter IntegerConverter LongConverter NumberConverter ShortConverter 9 次のコンバータは 記述を省略できる BooleanConverter ByteConverter CharacterConverter DoubleConverter FloatConverter IntegerConverter LongConverter ShortConverter 10 number プロパティと UIコンポーネントとの対応 (3) <h:inputText id="number1" value="#{ParameterBean.number}“ /> converter属性は省略できる。 11 date プロパティと UIコンポーネントとの対応 (1) 日付を入力してください (例 04/08/09): <h:inputText id="date1" value="#{ParameterBean.date}"> <f:convertDateTime dateStyle="short" /> </h:inputText> 12 date プロパティと UIコンポーネントとの対応 (2) <h:outputText id="date2" value="#{ParameterBean.date}"> <f:convertDateTime dateStyle="full" /> </h:outputText> 「2004年8月9日 (月曜日)」というように表示され る。 13 出力例 14 カスタム・コンバータ コンバータは、自分で作成することもできる。 15 バリデータ 16 バリデータとは何か 入力されたデータが、そのアプリケーション に適合するものかどうかチェックする機能。 例えば・・・ ここは必須項目なので、必ず入力しなければ ならない。 ここには、1~10までの数が入る 適合しなかった場合は、エラーメッセージを 表示できる。 17 バリデータに適合する場合の 出力例 18 バリデータに適合しない場合の 出力例 19 JSF標準のバリデータ DoubleRangeValidator LengthValidator LongRangeValidator 20 必須項目のチェック お名前を入力してください(必須): <h:inputText id="name1" required="true" value="#{ParameterBean.name}" /> データが入力されていないとエラーになる。 21 h:message 要素 <h:inputText id="name1" required="true" value="#{ParameterBean.name}" /> <h:message for="name1" /> エラーメッセージを表示するUIコンポーネント for 属性で指定した UIコンポーネントに関するエ ラーメッセージを表示する。 22 文字列の長さのチェック (1) 電話番号を入力してください(10文字以上): <h:inputText id="tel1“ value= "#{ParameterBean.telephoneNumber}"> <f:validateLength minimum="10" /> </h:inputText> <h:message for="tel1" /> 23 文字列の長さのチェック (2) <f:validateLength minimum="10" /> 文字列の長さをチェックするバリデータ 最小でも10文字は必要になる。 ほかに、maximum 属性もある。最大で何 文字までかチェックする 24 数の範囲のチェック (1) 品物の数を入力してください(1~10): <h:inputText id="quantity1" value="#{ParameterBean.quantity}"> <f:validateLongRange minimum="1" maximum="10"/> </h:inputText> <h:message for="quantity1" /> 25 数の範囲のチェック (2) <f:validateLongRange minimum="1" maximum="10"/> 整数の数の範囲をチェックする。 1 ~ 10 までの範囲となる。それ以外だと エラーになる。 26 バリデータに適合する場合の 出力例 27 バリデータに適合しない場合の 出力例 28 カスタム・バリデータ バリデータは、自分で作成することもできる。 29
© Copyright 2025 ExpyDoc