【问题标题】:JSF - Update model in invoke application phaseJSF - 在调用应用程序阶段更新模型
【发布时间】:2009-09-22 07:13:57
【问题描述】:

在我的 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 不同。

我错过了什么吗?

【问题讨论】:

    标签: jsf uicomponents phase


    【解决方案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 代码...

    【讨论】:

      猜你喜欢
      • 2021-05-04
      • 1970-01-01
      • 2014-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      相关资源
      最近更新 更多