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つのエラーメッセージを表示できるようにすることです。ユーザーが[送信]をクリックしたときにこれが機能しますが、いずれかのフィールド(inputAまたはinputB)がぼやけたときに起動したいと思います。どちらかのフィールドがぼやけているときにバッキングコンポーネントを検証する方法がわかりません。誰かがこれを達成する方法を提案できますか?フォーム全体を送信したくありません-このコンポーネントだけをajax経由で実行したいと思います。

4

1 に答える 1

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">

于 2012-05-02T17:12:21.303 に答える