我将 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 个的总和。我怎样才能消除这种延迟?如果不是太难,有人可以解释运行属性的优先级吗?
谢谢你。