我正面临这个问题,当我为inputText留下一切空白时,单击Save按钮,其中一个inputText字段将自动设置为0.000000。我一直在看这个,但我仍然无法弄清楚它有什么问题。在右边,它应该保持空白。
<tr>
<td><p:commandButton type="button"
value="#{msg.cr1002_command_save}" onclick="confirmation.show()"
id="cr1002_command_save" styleClass="commandButton">
</p:commandButton> <p:confirmDialog id="confirmDialog"
message="#{msg.cr1002_prompt_confirm_save}" severity="alert"
widgetVar="confirmation">
<p:commandButton id="confirm" value="OK"
oncomplete="confirmation.hide()"
action="#{pc_Cr1002.doCr1002_command_saveAction}" ajax="false"
styleClass="commandButton" />
<p:commandButton id="decline" value="Cancel"
onclick="confirmation.hide()" type="button"
styleClass="commandButton" />
</p:confirmDialog>
</td>
</tr>
<tr>
<td><h:outputText styleClass="outputText"
id="cr1002_output_sample_value"
value="#{msg.cr1002_output_sample_value}"></h:outputText>
</td>
<td></td>
<td><p:inputText styleClass="inputTextRefresh"
id="cr1002_input_sample_value" onchange="this.form.submit()"
valueChangeListener="#{pc_Cr1002.handleCr1002_input_sample_valueValueChange}"
style="text-align: right"
value="#{pc_Cr1002.w_currency.sample_value}">
<f:convertNumber pattern="##0.000000" />
</p:inputText>
</td>
<td></td>
<td><p:message styleClass="message_200px"
id="cr1002_error_sample_value" for="cr1002_input_sample_value"
display="text"></p:message>
</td>
<td></td>
</tr>
答案 0 :(得分:1)
#{pc_Cr1002.w_currency.sample_value}
我认为你的字段sample_value
是一个原语(float可能是)而不是一个包装类(Float)
实例级别的基元的默认值为0
或0.0
,而包装类的默认值为null
。
因此,如果这些假设是正确的,并且更改数据类型不会对您造成伤害,这可能会解决您的问题。