コンバータ・バリデータ J2EE II 第7回 2005年4月24日 1 ここでの内容 コンバータ・バリデータの手法について学 ぶ。 2 コンバータ 3 コンバータとは何か h:inputText 要素のようなテキスト入力フィールド には、基本的には String 型のデータが入る。 コンバータとは、Value Binding を使うタグと Managed Beanのプロパティ間でデータ変換を行 うもの。 h:inputText に入力されたデータを、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 まとめ 30 まとめ 「コンバータ」は数字や日付形式のデータ を入力したときに、自動的にIntegerや Dateクラスにコンバートする。 「バリデータ」を使うことにより、Webアプリ ケーションに入力されたデータが、そのア プリケーションに適合するものかどうか チェックできるようになる。 31 コンバータ・バリデータの 標準搭載によるメリット (1) Webアプリケーションを作成するうえで、コ ンバータやバリデータはよく利用される。 標準のコンバータやバリデータで、多くの Webアプリケーションの需要を満たせるは ず。 32 コンバータ・バリデータの 標準搭載によるメリット (2) バリデータやコンバータは、JSPに記述するだけ で(一部のものは記述しなくても)利用できるよう になる。 使い方に迷うことはない。 Struts などの技術を使って、クライアントサイドで データのチェックを行うバリデータを書くには、 JavaScript のコードを書く必要があった。 JSF標準のバリデータを使うことに、こうした手間 も省ける。 33
© Copyright 2025 ExpyDoc