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">
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 属性无论如何都起作用一样。不过很奇怪。
在 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">
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 属性无论如何都起作用一样。不过很奇怪。