0

ページ xyz.xhtml のボタンは、(ajax を使用して) このコードを呼び出します。

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

home は abc.xhtml を指します。このページには更新が必要なテーブルが含まれていますが、更新されません。何か案が?

独自の JavaScript を使用せずに更新するにはどうすればよいですか? onload 属性と ajax を使用してテーブルをリロードする JavaScript を使用する回避策があります。しかし、これは「フラットな」画面になります。このソリューションは洗練されたものではありません。

JSF 2、OpenFaces 3、および IE8 を使用しています。

前もって感謝します!

4

1 に答える 1

0

なぜそのようなナビゲーションハンドラーをいじっているのかわかりません。<f:ajax>OpenFacesの部分は使用したことがないのでよくわかりません。そのため、実際にどのように実行するかについての基本的な考え方を示すために、JSF2.xの基本的なアプローチを次に示します。

<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 に答える