忍者ブログ
[304] [303] [302] [301] [300] [299] [298] [297] [296] [295] [294]

DATE : 2024/04/18 (Thu)
×

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


DATE : 2007/05/11 (Fri)

(;^ω^)しばらく JSF を使ってきたのですが、今日はじめて Validator を複数重ねられることに気付きました。

例えば、入力形式(数字の間にハイフンが入っているなど)を検証する formatValidator とそれが今回はじめて入力されたものかどうかを検証する uniqueValidator を用意したとします。

すると、data の value プロパティに前述の検証を行ってから入力値を格納するテキストフィールドは次のように書けます。

<h:inputText value="#{data.value}">
    <f:validator validatorId="formatValidator" />
    <f:validator validatorId="uniqueValidator" />
</h:inputText>

JSF 1.2 の仕様書にも次のように書いてありました。(「JavaServer Faces Specification Version 1.2 Final Draft」p.3-34 から引用)

JSF supports a mechanism for registering zero or more validators on each EditableValueHolder component in the component tree.

javax.faces.component.EditableValueHolder は、編集可能な値を保持するコンポーネントが実装しているインタフェースです。javax.faces.component.html.HTMLInputText などの javax.faces.component.UIInput が実装しています。そのため、仕様上、入力用の UI コンポーネントは0から複数の Validator を使用できることになるわけです。

(;^ω^)私の見た入門書やサンプルコードには Validator を1つしか使用しないものしかなかったため、頭の中に Validator は1つという図式ができあがっていたようです。

参考文献

PR
●この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
●この記事へのトラックバック
この記事にトラックバックする:
忍者ブログ [PR]
ブログ内検索
最近の状況
リンク
カレンダー
03 2024/04 05
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)
最新トラックバック
ブログ内検索
最近の状況
リンク
カレンダー
03 2024/04 05
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)
最新トラックバック