我正在使用JSF2和RichFaces v4.5.12.Final在我们的Web应用程序中调试恼人的AJAX错误,我需要有关ajax更新失败的原因的更多信息。
我们使用多个元素生成相当复杂的表单,并且在其中一些表单中,以下代码段无法重新呈现并设置为错误。
for (int i = 0; i < assignedRooms.size(); i++) {
Room assignedRoom = assignedRooms.get(i);
if (assignedRoom.x < roomToAdd.x && assignedRoom.x + assignedRoom.width > roomToAdd.x)
// overlap
return false;
else if (assignedRoom.y < roomToAdd.y && assignedRoom.y + assignedRoom.height > roomToAdd.y)
// overlap
return false;
}
return true;
使用以下代码显示AJAX状态:
<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>
或其他任何内容都无关紧要......我们的某些页面上会出现错误。具有相同render="@all"
的其他人正常工作。