Java 在ADF中的弹出式焦点上设置会话变量
我有一个应用程序,有点沉重的ADF弹出对话框。它们将在索引页中定义如下:Java 在ADF中的弹出式焦点上设置会话变量,java,oracle-adf,Java,Oracle Adf,我有一个应用程序,有点沉重的ADF弹出对话框。它们将在索引页中定义如下: <af:popup id="popup1" contentDelivery="lazyUncached" binding="managedBean1"> <jsp:include page="page1.jsp" /> </af:popup> <af:popup id="popup2" contentDelivery="lazyUncached" binding="mana
<af:popup id="popup1" contentDelivery="lazyUncached" binding="managedBean1">
<jsp:include page="page1.jsp" />
</af:popup>
<af:popup id="popup2" contentDelivery="lazyUncached" binding="managedBean1">
<jsp:include page="page2.jsp" />
</af:popup>
etc, etc.
等等等等。
我想做的是,每当弹出窗口打开和/或接收到焦点时,我想设置一个名为“wheremi”的会话范围变量。此变量将用于进一步定制页面、上下文菜单等
有人能帮忙吗
Jason弹出组件有一个PopupFetchListener事件。当弹出窗口显示时,将触发该事件。
在支持bean中捕获该方法,并在那里设置会话bean。弹出组件有一个PopupFetchListener事件。当弹出窗口显示时,将触发该事件。
在支持bean中捕获该方法,并在那里设置会话bean。您可以使用JavaScript将click事件附加到弹出窗口的主体或div上。这可以通过从PopupFetchListener的侦听器方法触发JavaScript从后端实现。作为:
ExtendedRenderKitService service = Service.getRenderKitService(FacesContext.getCurrentInstance(), ExtendedRenderKitService.class);
service.addScript(FacesContext.getCurrentInstance(), "yourmethod();");
然后,您可以按照以下任一方法进行操作
添加带有actionListener
的commandButton,并将其隐藏。通过弹出窗口的onclick JavaScript方法,您可以通过以下方式触发该隐藏按钮的单击事件:
var button = AdfPage.PAGE.findComponentByAbsoluteId("hiddenButton");
ActionEvent.queue(button,true);
这将触发actionListener
或者您可以借助af:serverListener
来调用backing方法
我没有测试它,但这应该可以工作。您可以使用JavaScript将click事件附加到弹出窗口的主体或div上。这可以通过从PopupFetchListener的侦听器方法触发JavaScript从后端实现。作为:
ExtendedRenderKitService service = Service.getRenderKitService(FacesContext.getCurrentInstance(), ExtendedRenderKitService.class);
service.addScript(FacesContext.getCurrentInstance(), "yourmethod();");
然后,您可以按照以下任一方法进行操作
添加带有actionListener
的commandButton,并将其隐藏。通过弹出窗口的onclick JavaScript方法,您可以通过以下方式触发该隐藏按钮的单击事件:
var button = AdfPage.PAGE.findComponentByAbsoluteId("hiddenButton");
ActionEvent.queue(button,true);
这将触发actionListener
或者您可以借助af:serverListener
来调用backing方法
我没有测试它,但这应该可以工作。我发现了,但它是在弹出窗口获得焦点时触发,还是仅在第一次显示弹出窗口时触发?在这个应用程序中,可能会出现重叠的弹出窗口,这可能会搞乱wheremi变量breadcrumbs组件不是一个选项。实际上,我发现答案似乎是“否”,PopupFetchListener只在初始加载时启动,而不是弹出焦点。我发现了,但它会在弹出窗口获得焦点时启动,还是仅在第一次显示弹出窗口时?在这个应用程序中,可能会出现重叠的弹出窗口,这可能会破坏wheremi变量breadcrumbs组件不是一个选项。实际上,我发现答案似乎是“否”,PopupFetchListener只在初始加载时启动,而不是在弹出焦点时启动。