Icefaces和Java,在partialSubmit之后更新一个值

时间:2012-09-27 17:27:00

标签: java ajax jsp icefaces

我将Java与Tomcat 6和Icefaces结合使用(我认为是1.8)。

我有5个接受十进制值的字段,然后我在它们旁边有一个第6个字段(禁用),这被假设为前一个5的总和。我希望第6个字段自动计算5的总和并显示它。

这是我使用的代码。它有2个文本框,1个是输入,另一个是输出(我使用inputText输出,因为它看起来更好)。

<ice:panelGroup styleClass = "exampleBox selectionContainer">
    <ice:panelGrid columns = "2" styleClass = "verticalAlignTop">
        <ice:outputLabel for = "percent_O_can" value = "Other %:" style = "text_align: right"></ice:outputLabel> 
            <ice:inputText id="percent_O_can" size = "4" maxlength = "4" partialSubmit = "true" valueChangeListener = "#{new_Partner.can_total }" value="#{new_Partner.can_students[4]}" required="false">
        <f:validator validatorId="partners.decimalValidator" /> </ice:inputText> 
    </ice:panelGrid>
</ice:panelGroup>
<ice:message for = "percent_O_can" ></ice:message>

<ice:outputLabel for="can_total" value="Total Percentage" style="text-align: right;">
</ice:outputLabel>
<ice:panelGroup>
    <ice:inputText id="can_total" value="#{new_Partner.can_sum}" disabled="true" maxlength = "4">
    </ice:inputText>
<ice:message for="can_total" />
</ice:panelGroup>

在值监听器中,我对数组的5个值求和,并保存值(can_sum)。

它有效,但唯一的问题是延迟。假设我输入第一个文本框的值,它在我取消聚焦后刷新,但是输出值为0.然后我改变第二个文本框的值,在我取消聚焦之后,它提交,但输出值现在只是第一个文本框的值。我改变了第3个的值,现在输出是第1个和第2个的总和。我怎样才能消除这种延迟?如果不是太难,有人可以解释属性运行之后的优先级吗?

谢谢。

0 个答案:

没有答案