JavaEE 7をやってみよう。 validator その1
JSFのバリデータを使ってみる。
JSFには標準のバリデータがいくつか用意されている。
バリデータ名 | 機能 |
f:validateLength | 文字数チェック |
f:validateRegex | 正規表現による文字チェック |
f:validateRequired | 必須入力チェック |
f:validateLongRange | 整数値範囲チェック |
f:validateDoubleRange | 実数値範囲チェック |
また、自前でバリデータを作成することもできる。
汎用的なバリデータクラスを作る、
Managed Beanに固有のバリデートメソッドを作る
とふた通りのパターンがある。
まずは、標準のバリデータの使いかた。
入力後、フォーカスが外れたタイミングでチェックし、
エラーの場合、エラーメッセージを表示する。
<h:outputLabel value="0文字以上、8文字以下、半角英数字チェック" /><br /> <h:inputSecret id="text1" value="#{inputDataV.text1}" validatorMessage="0文字以上、8文字以下、半角英数字で入力せよ"> <f:validateLength minimum="0" maximum="8" /> <f:validateRegex pattern="[0-9A-Za-z]+" /> <f:ajax render="text1error" event="blur" /> </h:inputSecret> <h:message for="text1" id="text1error" style="color: red" />
inputSecretやinputTextなどのinput属性に変換されるタグの子要素として記述する。
この例では文字数チエックで、0文字以上、8文字以内、
文字種のチェック(正規表現)で半角英数字を許容している。
バリデータを使用する際、バリデータエラーを表示することになると思うが、
エラーメッセージを表示するには、h:messageタグを使う。
h:messageタグのfor属性にチェック対象のidを指定する。
チェックを実施するタイミングをf:ajaxタグを使って記載する。
event属性にタイミングを指定する。clickとかblurとかvalueChangeとか。
rendar属性に描画するオブジェクトのid(この場合、messageタグ)を指定する。
実行するとこんな感じ。
その2へつづく。