我的搜索结果页面上显示“显示更多结果”按钮。支持bean是会话范围的,我们使用preRenderView在支持bean中执行搜索方法:
<f:event type="preRenderView" listener="#{SearchBean.searchSolutions}" />
“显示更多结果”按钮的定义如下:
<h:commandButton action="#{SearchBean.onClickShowMoreResults()}">
<f:ajax disabled="false" render=":searchResultsForm"/>
</h:commandButton>
以下是我遇到的问题以及重现的步骤:
我尝试在侦听器方法中跳过ajax请求(如here所述)并且它解决了问题,但这对我来说是不可能的,因为有需要执行侦听器方法的ajax请求(更改搜索) criteras)。
是否有一些我对preRenderView不了解的东西,还是有另一种方法来实现我想要做的事情?
感谢您的帮助!
答案 0 :(得分:0)
由于我没有回答,我找到了解决这个问题的方法。
我确保没有对侦听器方法进行ajax调用(做出一些牺牲)并在this线程中使用了BalusC的答案。
使用:
if (FacesContext.getCurrentInstance().getPartialViewContext().isAjaxRequest()) {
return; // Skip ajax requests.
}
侦听器方法中的解决了这个问题。