JSF NavigationHandler#handleNavigation +清除缓存

问题描述

| xyz.xhtml页面上的按钮确实调用了此代码(使用ajax)。
FacesContext fc = FacesContext.getCurrentInstance();
NavigationHandler nh = fc.getApplication().getNavigationHandler();
nh.handleNavigation(fc,null,\"home\");
主页指向abc.xhtml。该页面包含一个应刷新的表,但是不会发生。任何想法? 不使用自己的JavaScript怎么刷新?我有一个使用onload属性和JavaScript的解决方法,该方法使用ajax重新加载表。但这确实是“更讨人喜欢”的屏幕。该解决方案并不复杂。 我正在使用JSF 2,OpenFaces 3和IE8。 先感谢您!     

解决方法

        我不明白您为什么喜欢这样的导航处理程序。由于我从未使用过OpenFaces部分,因此我不确定,因此这里仅是基本的JSF 2.x方法(带有
<f:ajax>
),以给出如何实际完成操作的基本概念:
<h:form>
    <h:commandButton value=\"refresh\" action=\"#{bean.refresh}\">
        <f:ajax render=\":table\" />
    </h:commandButton>
</h:form>

<h:dataTable id=\"table\" value=\"#{bean.list}\" var=\"item\">
    ...
</h:dataTable>
public void refresh() {
    list = someService.list();
}