【发布时间】:2016-05-09 15:09:34
【问题描述】:
我目前正在使用 JSF2 和 RichFaces v4.5.12.Final 在我们的 Web 应用程序中调试一个恼人的 AJAX 错误,我需要进一步了解 ajax 更新失败的原因。
我们生成包含多个元素的相当复杂的表单,在其中一些表单上,以下代码 sn-p 无法重新渲染并设置为错误。
<h:selectBooleanCheckbox value="#{myBean.value}">
<a4j:ajax event="valueChange" execute="@form" render="@form,messages" status="minimal" />
</h:selectBooleanCheckbox>
使用以下代码显示 AJAX 状态:
<a4j:status name="minimal" onstart="$('body').css('cursor', 'progress');" onstop="$('body').css('cursor', 'default');">
<f:facet name="start">
<h:graphicImage name="/3rd-Party/Fugue-Icons/hourglass.png" styleClass="middle" />
</f:facet>
<f:facet name="stop"></f:facet>
<f:facet name="error">
<h:graphicImage name="/3rd-Party/Fugue-Icons/exclamation-red.png" styleClass="middle" />
</f:facet>
</a4j:status>
有什么方法可以显示渲染失败的原因吗?我可以访问任何包含某种错误消息的变量吗?
调试显示执行已执行并且不会导致任何服务器端错误。该错误发生在 AJAX 无法重新加载页面内容的客户端。如果我们使用render="@all" 或其他任何东西都没有关系......我们的某些页面上会出现错误。其他<a4j:ajax>相同的可以正常工作。
【问题讨论】:
-
<a4j:ajax ... render="@this" />工作...但没有更多的范围。 -
发现
<a4j:ajax ... render="@parent" />可以工作...但这还不够,因为同一页面上的其他元素需要渲染。