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。
提前谢谢!
答案 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();
}