0

xyz.xhtml 页面上的按钮会调用此代码(使用 ajax)。

FacesContext fc = FacesContext.getCurrentInstance();
NavigationHandler nh = fc.getApplication().getNavigationHandler();
nh.handleNavigation(fc, null, "home");

home 指向 abc.xhtml。此页面包含一个应该刷新的表,但这不会发生。任何的想法?

如何在不使用自己的 JavaScript 的情况下刷新?我有一个使用 onload 属性和 JavaScript 的解决方法,它使用 ajax 重新加载表。但这确实“更平坦”的屏幕。这个解决方案并不复杂。

我正在使用 JSF 2、OpenFaces 3 和 IE8。

先感谢您!

4

1 回答 1

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();
}
于 2011-06-14T12:38:22.753 回答