【问题标题】:How to Refresh ADF jsf page components by pressing a button?如何通过按下按钮刷新 ADF jsf 页面组件?
【发布时间】:2014-07-31 08:36:07
【问题描述】:

我有一个融合 Web 应用程序,其中包含一个 af:query 面板(我用表格创建了它的查询面板),以及相互关联的 af:table 和 af:panelFormLayout。当我在查询面板中搜索条目时,结果会同时显示在表格和 panelFormLayout 中。当我在查询面板中按下重置按钮时,只有查询面板被重置。我想重置所有页面。如何利用 ADF 的易用性来做到这一点?

【问题讨论】:

    标签: jsf oracle-adf


    【解决方案1】:

    基本上,您希望覆盖 af:query 的重置功能。在这种情况下,您应该:
    1. 将 af:query 的 QueryListener 属性设置为托管 bean 方法。您可以参考此示例,该示例描述了所需的所有步骤:Programmatically RESET query panel 在里面,你会看到这个电话:AdfFacesContext.getCurrentInstance().addPartialTarget(t1); 它负责表的刷新。现在,如果您拥有 af:panelGroupLayout 中的所有内容(或任何其他支付类型组件),则可以改为刷新它(因此您需要将其与 bean 上的字段绑定并使用它而不是 t1 在此调用中。否则,如果您仍希望刷新整个页面,请执行第 2 步。


    2.添加需要的代码使页面刷新:

        FacesContext context = FacesContext.getCurrentInstance();
        String currentView = context.getViewRoot().getViewId();
        ViewHandler vh = context.getApplication().getViewHandler();
        UIViewRoot x = vh.createView(context, currentView);
        x.setViewId(currentView);
        context.setViewRoot(x);
    

    只需将其放在上述链接中描述的方法中即可。

    【讨论】:

    • 11g中如何访问jsf页面的backing bean源?
    • 这并没有改变,通过这样的 EL:
    • 我的意思是,在哪里可以找到我的jsf页面的java源代码,然后我可以添加自己的代码和更改方法?
    • 看到这样的问题我很惊讶。您如何与 ADF 合作,甚至不知道这样的事情?我正在编辑我的答案以发布一张图片,说明我认为你在寻找什么。
    • 因为我不是在寻找该图像中的信息,所以我当然已经知道了。您的回答对我没有图像有帮助,谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    • 2012-12-17
    • 2020-12-08
    • 2014-03-07
    • 2019-04-17
    • 1970-01-01
    相关资源
    最近更新 更多