RichFaces 3 & AJAX 请求 - 如果不是第一个 Ajax 请求,Bean 已更新但页面未更新

RichFaces 3 & AJAX request - Bean updated but not the page if not first Ajax request

rich:dataTable 中,我有一列 header,其中包含以下作为过滤器的输入:

<h:inputText id="filter" value="#{action.filter}">
    <a4j:support event="onkeyup" requestDelay="1000" ignoreDupResponses="true" 
                 reRender="dataTable, filter" 
                 focus="filter" oncomplete="setCaretToEnd(event);" />
</h:inputText>

我的页面包含一些其他组件ajax。一切都在一个h:form里面,没有aj4:region(如果相关要注意)。

加载页面时,如果第一个发送的 AJAX 请求是来自过滤器输入的请求,则它工作正常并且我的 table 已正确更新。尽管如此,一旦之前发送了另一个 AJAX 请求,bean 仍然会使用应该填充我的 table 的新值正确更新,但我的页面没有任何变化,就好像 reRender 属性无效。

此问题仅适用于此特定输入和 AJAX 请求。所有其他组件随时都可以正常工作。

我对 JSF 和 RichFaces 还很陌生。可能跟queues有关?

我解决了这个问题。 我只是将我的缺陷组件嵌套在以下面板中:

<a4j:outputPanel ajaxRendered="true">

RichFaces documentation 说:

A component with ajaxRendered="true" will be re-rendered with every Ajax request, even when not referenced by the requesting component's render attribute. This can be useful for updating a status display or error message without explicitly requesting it.

所以我想这就像我强制嵌套组件的 reRender 属性无论如何都起作用一样。不过很奇怪。