私はJavaをTomcat6とIcefaces(1.8だと思います)と組み合わせて使用しています。
10進値を受け入れる5つのフィールドがあり、そのすぐ横に6番目のフィールド(無効)があります。これは、前の5つの合計であると想定されます。6番目のフィールドで5つの合計を自動的に計算し、表示します。 。
これが私が使用したコードです。2つのテキストボックスがあり、1つは入力で、もう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です。次に2番目のテキストボックスの値を変更し、フォーカスを外すと送信されますが、出力値は最初のテキストボックスの値。3番目の値を変更すると、出力は1番目と2番目の合計になります。どうすればこの遅延をなくすことができますか?それがそれほど難しくない場合、誰かが属性が実行された後の優先順位を説明できますか?
ありがとうございました。