2012-05-02 12 views
1

私は2つのinputTextコンポーネントを含む複合コンポーネントを持っています。 複合コンポーネントは、2つの整数を含むBeanを管理します。ぼかしでコンポジットコンポーネントを検証するにはどうすればよいですか?

class valueBean { 
    private Integer valueA; 
    private Integer valueB; 
    //getters, setters. 
} 

<composite:interface componentType="valueBeanUI"> 
    <composite:attribute name="value"> 
</composite:interface> 

<composite:implementation> 
    <h:inputText id="inputA"/> 
    <h:inputText id="inputB"/> 
</composite:implementation> 

私のvalueBeanUIでは、getConvertedValueとencodeBeginを実装しています。

すべてが正常に動作します - 私がgetConvertedValueのコードを送信すると、送信されます。ユーザーが整数フィールドに文字を入力すると変換値が返されるとエラーメッセージが表示されます。

私がしたいのは、両方のフィールドで有効な値を要求でき、この条件が満たされない場合は1つのエラーメッセージを表示できることです。ユーザーがsubmitをクリックしたときにこれを動作させていますが、いずれかのフィールド(inputAまたはinputB)のぼかしで起動したいと思います。いずれかのフィールドがぼやけた場合、バッキングコンポーネントを検証する方法を理解できません。誰もこれを達成する方法を提案することはできますか?私は全体のフォームを提出したくないです - 私はこのコンポーネントをajax経由でやりたいと思います。

答えて

0

<f:ajax event="blur">を入力に追加するだけです。

<h:inputText id="inputA"> 
    <f:ajax event="blur" execute="@this inputB" render="messageForInputA messageForInputB" /> 
</h:inputText> 
<h:inputText id="inputB"> 
    <f:ajax event="blur" execute="@this inputA" render="messageForInputA messageForInputB" /> 
</h:inputText> 

messageForInputA<h:message id="messageForInputA">を指している必要があります。

+0

処理する必要がありますか?=実行しますか?フェイスレットによると、spec f:ajaxにはprocess属性がありません。 –

+0

あなたはそうです。私はそれをPrimeFacesの「」と混合しました:) – BalusC

+0

パーフェクト!ありがとうございました。今でもバッキングコンポーネントは必要ありません。カスタムコンバーターとバリデーターで私が望むものを得ることができます。 –

関連する問題