JSF NavigationHandler#handleNavigation + clear cache

时间:2011-06-14 11:52:56

标签: java jsf java-ee jsf-2 openfaces

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。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

我不明白你为什么要像这样摆弄导航处理程序。我不确定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();
}