Uploaded image for project: 'MyFaces Tomahawk'
  1. MyFaces Tomahawk
  2. TOMAHAWK-543

The wrong tab may be displayed after a validation failure and serverSiteTabSwitch="false"


    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Invalid
    • Affects Version/s: 1.1.3
    • Fix Version/s: None
    • Component/s: Tabbed Pane
    • Labels:


      I have a form on a tabbed pane that validates input. When their is a validation error and the attribute serverSideTabSwitch on <t:panelTabbedPane> is undefined or set to false, the first tab is displayed, not the one with the error.

      Their is a selectedIndex attribute on <t:panelTabbedPane>. I would contend that the selectIndex is not getting
      set/restored when serverSiteTabSwitch="false". This show up when the validation phase fails.

      Or said another way:
      MyFaces does not know which tab the clicked button was on and it always display the tab
      identified by selectIndex when serverSiteTabSwitch="false" when their is a validation failure.

      The code below will demonstrate the problem. Click on "Server Tab 2" then "Submit Query". "Server Tab 2"
      is still the current table. Now do the same with "Client Tab 2". You will notice that "Client Tab 1" is
      the current tab!

      <t:panelTabbedPane id="serverSideSwitch" width="100%" serverSideTabSwitch="true">
      <t:panelTab label="Server Tab 1">
      <h:outputLabel for="tab_1_input" value="Required Value" />
      <h:inputText id="tab_1_input" required="true" />
      <h:commandButton action="submit" />
      <h:messages />
      <t:panelTab label="Server Tab 2">
      <h:outputLabel for="tab_2_input" value="Required Value" />
      <h:inputText id="tab_2_input" required="true" />
      <h:commandButton action="submit" />
      <h:messages />
      <t:panelTabbedPane id="clientSideSwitch" width="100%" serverSideTabSwitch="false">
      <t:panelTab label="Client Tab 1">
      <h:outputLabel for="ctab_1_input" value="Required Value" />
      <h:inputText id="ctab_1_input" required="true" />
      <h:commandButton action="submit" />
      <h:messages />
      <t:panelTab label="Client Tab 2">
      <h:outputLabel for="ctab_2_input" value="Required Value" />
      <h:inputText id="ctab_2_input" required="true" />
      <h:commandButton action="submit" />
      <h:messages />


          Issue Links



              • Assignee:
                lu4242 Leonardo Uribe
                paulsp Paul Spencer
              • Votes:
                0 Vote for this issue
                1 Start watching this issue


                • Created: