1

我有一个包含两个 inputText 组件的复合组件。复合组件管理一个包含两个整数的 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 中的代码,如果用户在整数字段中输入字符,如果转换值,我可以抛出错误消息。

我想做的是能够在两个字段中都要求一个有效值,如果不满足这个条件,则显示一条错误消息。当用户单击提交时,我有这个工作,但我想在任一字段(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 回答