JSF/Richfaces/A4j==>;组件/字段转换和重新招标问题
我在JSF页面中有一个输入字段,如下所示(映射到支持bean上的BigDecimal)JSF/Richfaces/A4j==>;组件/字段转换和重新招标问题,jsf,richfaces,lifecycle,rerender,Jsf,Richfaces,Lifecycle,Rerender,我在JSF页面中有一个输入字段,如下所示(映射到支持bean上的BigDecimal) 以及一个a4j:commandButton,用于“刷新”页面上数据库中的所有数据: <a4j:commandButton accesskey="T" action="#{volumeBean.revert}" button-type="ajax" disabled="#{volumeBean.revertDisabled}" id="volumeBean_reset" imm
以及一个a4j:commandButton,用于“刷新”页面上数据库中的所有数据:
<a4j:commandButton accesskey="T" action="#{volumeBean.revert}" button-type="ajax" disabled="#{volumeBean.revertDisabled}" id="volumeBean_reset" immediate="true" reRender="volumesTable" value="#{msg.button_RESET}"/>
以下是重现我的问题的步骤:
请注意,无论a4j:support上是否设置了reRender属性,都会发生此错误
以下是复制的步骤-只是为了进一步澄清:
当您进行重置时,您会触发一个Ajax请求,整个表单都会提交,并且再次出现验证错误。因此该字段仍然具有旧的(不正确的)值 尝试向按钮添加参数
ajaxSingle=“true”
。我发现immediate=“true”
不足以绕过ajax组件上的验证。重置按钮具有“immediate=“true”,因此它应该绕过验证。由于对话失败,组件中的submittedValue中保留了不正确的值。您是正确的,当immediate=“true”时不会处理对话/验证,但当呈现页面时,将使用submittedValue中的值。您需要清除submittedValue。如何自动或以编程方式清除submittedValue?查看JSF API中的组件。getSubmittedValue()ajaxSingle不会跳过验证。这意味着只有当前组件将被处理,换句话说,将经历JSF的生命周期。该值仍然以某种方式缓存在客户端。
<a4j:commandButton accesskey="T" action="#{volumeBean.revert}" button-type="ajax" disabled="#{volumeBean.revertDisabled}" id="volumeBean_reset" immediate="true" reRender="volumesTable" value="#{msg.button_RESET}"/>