如何显示<a4j:status>错误的原因?

时间:2016-02-01 08:26:09

标签: ajax jsf-2 richfaces

我正在使用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"的其他人正常工作。

1 个答案:

答案 0 :(得分:2)

当服务器响应出现问题时,将触发错误处理程序。 RichFaces有<a4j:log>专门用于调试,它至少会告诉你它是什么类型的错误。