JSF NavigationHandler # handleNavigation + очистить кеш - PullRequest
0 голосов
/ 14 июня 2011

Кнопка на странице 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.

Заранее спасибо!

1 Ответ

0 голосов
/ 14 июня 2011

Я не понимаю, почему вы так возитесь с обработчиком навигации. Я не уверен насчет части 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();
}
...