PowerPoint ファイル
Download
Report
Transcript PowerPoint ファイル
コンバータ・バリデータ
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