忍者ブログ
[205] [204] [203] [202] [201] [200] [199] [198] [197] [196] [195]

DATE : 2017/06/27 (Tue)
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


DATE : 2006/11/10 (Fri)

JSF には、ユーザが入力フィールドなどに入力した内容を検証できる Validator があります。例えば、javax.faces.validator.LengthValidator は、入力された文字数が一定の範囲内にあるか検証できますし、org.apache.myfaces.custom.emailvalidator.EmailValidator は入力された文字列がメールアドレスの形式になっているか否かを検証できます。また、javax.faces.validator.Validator インタフェースを実装することで、自分なりの Validator を作ることもできます(他にも、検証を行うメソッドを直接記述する Validator もあります)。

インタフェースを実装した Validator は、JSF の設定ファイルである faces-config.xml に登録すると使えるようになります。例えば、以下は project.jsf.MyValidator を myValidator として登録した部分です。

<validator>
    <validator-id>myValidator</validator-id>
    <validator-class>project.jsf.MyValidator</validator-class>
</validator>

こうして登録した Validator を入力フィールドで使用するには、次のようにします。以下は、入力フィールドに入力された文字列を myValidator が検証し、合格であれば myBean の value プロパティに文字列を設定する部分です。不合格の場合は、入力フィールドに続いてエラーメッセージが表示されます(h:message タグの部分になります)。

<h:inputText id ="textField" value="#{myBean.value}">
    <f:validator validatorId="myValidator" />
 </h:inputText>
<h:message for="textField" />

しかし、Validator の使用には注意が必要です。入力フィールドが空値の場合、Validator は実行されません。つまり、空値の場合は空値がそのまま myBean の value プロパティに設定されてしまいます。

実は、入力フィールドなどの入力を求める部分に文字列があるかを検証する方法は、別に用意されています。

それは required 属性で、この属性を true に設定すると、入力を必須にすることができます。

上の例では、次のようになります。

<h:inputText id ="textField" value="#{myBean.value}"
        required="true">
    <f:validator validatorId="myValidator" />
 </h:inputText>
<h:message for="textField" />

Validator 同様、h:message タグの部分にエラーメッセージが表示されます。

すると、Validator では空値を検証する必要がないとも言えます。

(;^ω^)これにはそうとう長期間苦しめられました

参考文献

PR
●この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
●この記事へのトラックバック
この記事にトラックバックする:
忍者ブログ [PR]
ブログ内検索
最近の状況
リンク
カレンダー
05 2017/06 07
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
T/O
(11/05)
ブログ内検索
最近の状況
リンク
カレンダー
05 2017/06 07
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
T/O
(11/05)