JSF - 调用应用程序阶段的更新模型

时间:2009-09-22 07:13:58

标签: jsf uicomponents phase

在我的JSF应用程序中,我需要在调用应用程序阶段更新ui组件。可以吗?这是我到目前为止制作的代码:

    public void resetDataScroller(ActionEvent actionEvent) {

    final FacesContext ctx = FacesContext.getCurrentInstance();

    ctx.getViewRoot().invokeOnComponent(ctx, "paginator_and_table:scroll_1", new ContextCallback() {
        public void invokeContextCallback(FacesContext facesContext, UIComponent uiComponent) {

            HtmlDatascroller htmlDatascroller = (HtmlDatascroller) uiComponent;

            htmlDatascroller.setPage(1);
            htmlDatascroller.setValue(1);


        }
    });

}

此动作侦听器查找dataScroller组件并将页面和值设置为1.不幸的是它似乎根本不起作用,因为渲染的dataScroller页面不同于1.

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

我想您的resetDataScroller方法是由您网页上的命令按钮/链接的actionListener属性调用的方法吗?

我真的不明白你要做什么......你只需要编写这段代码吗? :

public void resetDataScroller(ActionEvent evt) {
    final FacesContext ctx = FacesContext.getCurrentInstance();
    HtmlDatascroller htmlDatascroller = (HtmlDatascroller) ctx.getViewRoot().findComponent("paginator_and_table:scroll_1");
    htmlDatascroller.setPage(1);
    htmlDatascroller.setValue(1);
}

如果在此阶段更改HtmlDatascroller的这些属性,JSF将在上一阶段(Render Response阶段)使用它们来生成HTML代码......