2012-06-12 7 views
8

私はinputTextがたくさんあるフォームを持っています。正しいデータで満たされていない人を強調したいのです。検証エラーが発生したときにJSFのinputTextを強調表示します

私は 'component.valid'を使用しようとしましたが、常にフィールドが無効であることを返します(フィールドは常に赤です)。

これはコードです:

<h:inputText value="#{creerPersonne1.nom}" id="nom" 
    style="#{not nom.valid ? 'border-color:red;' : 'border-color:black;'}"> 
    <f:validateRegex pattern="^[a-zA-Z]+$"></f:validateRegex> 
</h:inputText> 

これが結果です:

Always invalid

ノートページが最初にロードされたときにフィールドにも強調表示されていること。

+1

テキストに 'component.valid'を書きましたが、あなたのコードは' nom.valid'を表示しています。あなたは(正しい) 'component.valid'を試しましたか? –

答えて

20

nom.validの代わりにcomponent.validを使用してください。

componentは、現在の入力コンポーネントの暗黙のELオブジェクトです。 component.validはサーバー側コンポーネントのisValid()メソッドを呼び出します。 id引数をこの方法で使用することはできません。

style="#{ component.valid ? 'border-color:black;' : 'border-color:red;'}" 

(関連していないのが、あなたはより良いスタイルのクラスの代わりに、ハードコーディングされたスタイルを使用する必要があり、有効なチェックは、同様に属性styleClassのために動作します。):次のように

つまり、あなたのコードを変更する必要があります。

+0

実際、コンポーネントをコンポーネントの実際のIDに置き換えなければならないと思っていました。/ ありがとう。 – Eildosa

+0

ところで、私はちょうど彼らが依存関係 "hibernate-validator"なしで動作しないという難しい方法を学びました。 – Eildosa

関連する問題