JSFではバリデートできないパターン

 JSFの仕組み上、バリデータを使ってはチェックできないパターンがあるように思われる。ていうか、今のところ私の頭ではどう考えてもできない。
 それは、パスワードを入力するとき、誤入力防止のためにもう一度入れるというよくあるパターンの場合で、その項目が必須入力でない場合である。たとえば、MyFacesには、validateEqualというこういった場合にうってつけのバリデータがあるのだが、一回目と二回目の入力が必須入力でなければならない。つまりrequired属性がtrueでなければならないのだ。ちなみにこのバリデータは二回目の入力につける。一回目では、二回目の入力値を取得できないからである。
 required属性をはずしてみるとどうなるかというと、一見正しく動いているように見えるのだが、二回目の入力をしなくても通ってしまう。つまり、何も入力しないとバリデータが駆動しないのである。つまり、「パスワードをつけたいならつけておくれ。パスワードいらないなら入れないでおくれ」というようなUIが不可能なのだ。……う〜む。使えなし。