Oracle ADF:选项卡式窗格 - 重定向到它时始终显示第一个选项卡

Oracle ADF : Tabbed Pane - Showing always first tab when redirected to it

我们正在使用 Oracle ADF 开发 Web 应用程序。在此我们有一个带有选项卡窗格的页面,如下所示

在上图中我们有两个选项卡Account Payable 和Accounts Receivable。每个选项卡都有绿色和红色图像(这是一个命令图像)。当用户点击任何图像意味着红色或绿色时,他将被导航到另一个页面。在该页面中,我们提供了另一个名为 Back 的按钮。这个选项卡窗格和另一个页面(第二页)是 .jsff 并且我们将它作为一个区域删除。我们的问题是当用户点击另一个页面中的后退按钮时,它总是显示第一个标签,即使他点击了第二个标签中的按钮。

所以我们需要实现以下目标

如果用户在第一个选项卡中单击红色或绿色图像,并且当他单击后退按钮时,他必须被重定向到第一个选项卡。

如果用户在第二个选项卡中单击红色或绿色图像,并且当他单击后退按钮时,他必须被重定向到第二个选项卡。

我们如何实现这一点。请帮忙。提前致谢。

假设您在 Session 范围内有支持 bean - myBean :

<af:panelTabbed id="pt1">
  <af:showDetailItem disclosureListener="#{myBean.tabSelected}" text="Accounts Payable" disclosed="#{myBean.selectedTab == "sdi1"}" id="sdi1"/>
  <af:showDetailItem #{myBean.tabSelected} text="Accounts Receivable" disclosed="#{myBean.selectedTab == "sdi2"}" id="sdi2"/>
</af:panelTabbed>

而你的 bean 应该看起来有 :

public MyBean {

private String tabSelected; //make sure you add getter and setter too!!! 

   public void tabSelected(DisclosureEvent disclosureEvent) {
      if (disclosureEvent.isExpanded()) {
        UIComponent uiComp = (UIComponent)disclosureEvent.getSource();
        tabSelected = uiComp.getId();
      }
   }
}

如果两个页面都是同一个有界任务流的一部分,您的支持 bean 也可以有 pageFlowScope。

更多详情,请点击此处:

https://docs.oracle.com/middleware/1212/adf/TROAF/tagdoc/af_showDetailItem.html

http://adfhowto.blogspot.co.uk/2011/05/when-disclosurelistener-of-paneltabbeds.html