バリデータ エンタープライズアプリケーション II 第9回 / 2006年7月23日 1 ここでの内容 バリデータ サンプルプログラム バリデータの解説 2 バリデータ 3 バリデータとは何か 入力されたデータが、そのアプリケーション に適合するものかどうかチェックする機能。 例えば・・・ ここは必須項目なので、必ず入力しなければ ならない。 ここには、1~10までの数が入る 適合しなかった場合は、エラーメッセージを 表示できる。 4 JSF標準のバリデータ 必須項目のチェック 数の範囲のチェック 文字列の長さのチェック 5 Tomahawkのバリデータ e-mailアドレスのチェック クレジットカードの番号チェック 正規表現によるチェック 2つのコンポーネントの入力値が等しいか チェック 6 サンプルプログラム 7 データの入力 8 エラー 9 成功 10 h:panelGrid タグ (1) <h:panelGrid columns="3"> <f:facet name="header"> <h:outputText ... /> </f:facet> <h:outputText ... /> <h:inputText ... /> <h:message ... /> </h:panelGrid> UIコンポーネントを表 形式でレイアウトする ためのコンポーネント 11 h:panelGrid タグ (2) <h:panelGrid columns="3"> <f:facet name="header"> <h:outputText ... /> </f:facet> <h:outputText ... /> <h:inputText ... /> <h:message ... /> </h:panelGrid> f:facet タグは、表形 式の直前に「ヘッダ」 として表示される 12 h:panelGrid タグ (3) <h:panelGrid columns="3"> <f:facet name="header"> <h:outputText ... /> </f:facet> <h:outputText ... /> <h:inputText ... /> <h:message ... /> </h:panelGrid> Columns属性で指定 された個数のUIコン ポーネントを、1行で 表示する その後に続く3つのUI コンポーネントが、次 の行に 13 バリデータの解説 14 必須項目のチェック お名前を入力してください(必須): <h:inputText id="name" required="true" value="#{ParameterBean.name}" /> データが入力されていないとエラーになる。 15 h:message 要素 (1) <h:inputText id="name" required="true" value="#{ParameterBean.name}" /> <h:message for="name" style="error" /> エラーメッセージを表示するUIコンポーネント for 属性で指定した UIコンポーネントに関するエ ラーメッセージを表示する。 コンバータに適合しなかったらエラーメッセージを 表示する。 16 h:message 要素 (2) <h:message for="name" style="error" /> エラーメッセージのスタイルに、style.css の ".error" と いうクラスセレクタの設定が適用される style.css より .error { font-style: italic; color: red; } 17 文字列の長さのチェック (1) パスワードを設定してください(5文字以上) <h:inputSecret id="password" value="#{ParameterBean.password}"> <f:validateLength minimum="5" /> </h:inputSecret> <h:message for="password" styleClass="error" /> 18 h:inputSecret パスワードを設定してください(5文字以上) <h:inputSecret id="password" value="#{ParameterBean.password}"> …… </h:inputSecret> パスワードなどを入力するときに、入力された文字を そのまま表示せずに、"・・・・・" のように伏せ字にして 表示してくれるコンポーネント 19 文字列の長さのチェック (2) <f:validateLength minimum="5" /> 文字列の長さをチェックするバリデータ 最小でも5文字は必要になる。 ほかに、maximum 属性もある。最大で何 文字までかチェックする 20 文字列の長さのチェック (3) <h:inputSecret id="password" value="#{ParameterBean.password}"> <f:validateLength minimum="5" /> </h:inputSecret> f:validateLength は、h:inputSecret の子要素 になっている。 つまり、この f:validateLength は、 h:inputSecret に属している。 21 数の範囲のチェック (1) 品物の数を入力してください(1~10): <h:inputText id="quantity" value="#{ParameterBean.quantity}"> <f:validateLongRange minimum="1" maximum="10" /> </h:inputText> <h:message for="quantity" /> 22 数の範囲のチェック (2) <f:validateLongRange minimum="1" maximum="10"/> 整数の数の範囲をチェックする。 1 ~ 10 までの範囲となる。それ以外だと エラーになる。 23 Value Binding と Managed Bean <h:inputText id="quantity" value="#{ParameterBean.quantity}"> …… </h:inputText> // quantity プロパティは Integer 型 public Integer getQuantity() { return quantity; } 24 コンバータとは何か h:inputText 要素のようなテキスト入力フィールド には、基本的には String 型のデータが入る。 コンバータとは、Value Binding を使うタグと Managed Beanのプロパティ間でデータ変換を行 うもの。 h:inputText に入力されたデータを、Integer や Date 型に変換 Integer や Date 型のオブジェクトの値を、 h:outputText などで出力 25 E-mailアドレスのチェック e-mailアドレスを入力してください: <h:inputText id="email" value="#{ParameterBean.email}"> <t:validateEmail /> </h:inputText> Emailアドレスの形式になっているかどうかチェッ クする。 26 2つのコンポーネントの入力値 が等しいかチェック <h:inputText id="email" required="true" value="#{ParameterBean.email}" /> <h:inputText id="email2" required="true" value="#{ParameterBean.anotherEname}”> <t:validateEqual for="email" /> </h:inputText> name1で入力された値とname2で入力された値が等 しいかチェックする 27 クレジットカードの番号チェック クレジットカードの番号を入力してください: <h:inputText id="creditCardNumber" value="#{ParameterBean.creditCardNumber}"> <t:validateCreditCard /> </h:inputText> クレジットカードの番号をチェックする VISA, Master Card など (JCBはダメ) 28 正規表現によるチェック 郵便番号を入力してください(例: 097-0013): <h:inputText id="zipNumber" value="#{ParameterBean.zipNumber}"> <t:validateRegExpr pattern='¥d{3}-¥d{4}' /> </h:inputText> 入力データが pattern属性で指定した正規表 現にマッチするかどうかチェックする。 29 ¥d{3}-¥d{4} という正規表現 まず、(0から9までの)数字が3つ並び その後で "-" (ハイフン) がきて (0から9までの)数字が4つ並ぶ 30 カスタム・バリデータ バリデータは、自分で作成することもできる。 31
© Copyright 2024 ExpyDoc