Uploaded image for project: 'MyFaces Core'
  1. MyFaces Core
  2. MYFACES-1365

h:selectOneMenu - Phase processing broken for the first selectOneMenu when using 2 of them.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Invalid
    • 1.1.3
    • 1.1.3
    • None
    • None
    • tomcat 5.5.17, java 1.5

    Description

      Using two selectOneMenu on one page results in a broken phase processing.

      example:

      Works:

      <html>
      <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
      <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
      <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
      <%@include file="../inc/head.jsp"%>
      <body>
      <f:view>
      <h:form>
      <f:loadBundle basename="my.examples.ressources.messages" var="msgs" />
      <h:selectOneMenu id="oneoption" value="#

      {tableData.rows}"
      onchange="submit()" valueChangeListener="#{tableData.rowsChanged}"
      immediate="true">
      <f:selectItem itemValue="5" itemLabel="5" />
      <f:selectItem itemValue="10" itemLabel="10" />
      <f:selectItem itemValue="15" itemLabel="15" />
      <f:selectItem itemValue="20" itemLabel="20" />
      </h:selectOneMenu>
      </h:form>
      </f:view>
      <%@include file="../inc/page_footer.jsp"%>
      </body>
      </html>

      doesnt work:

      <html>
      <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
      <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
      <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
      <%@include file="../inc/head.jsp"%>
      <body>
      <f:view>
      <h:form>
      <f:loadBundle basename="my.examples.ressources.messages" var="msgs" />
      <h:selectOneMenu id="oneoption" value="#{tableData.rows}

      "
      onchange="submit()" valueChangeListener="#

      {tableData.rowsChanged}

      "
      immediate="true">
      <f:selectItem itemValue="5" itemLabel="5" />
      <f:selectItem itemValue="10" itemLabel="10" />
      <f:selectItem itemValue="15" itemLabel="15" />
      <f:selectItem itemValue="20" itemLabel="20" />
      </h:selectOneMenu>
      <h:selectOneMenu value="#

      {tableData.country}

      " onchange="submit()">
      <f:valueChangeListener
      type="my.examples.sortabletable.CountryListener" />
      <f:selectItems value="#

      {tableData.countryNames}

      " />
      </h:selectOneMenu>
      </h:form>
      </f:view>
      <%@include file="../inc/page_footer.jsp"%>
      </body>
      </html>

      Using the first one, the event gets fired and looking at the phase listener, all 6 phases are processed.
      Using the second example with both menus and firing an event on the first menu, application invoke and model update phase aren't executed.
      The second menu works fine

      Only happens after the bean is new - using it on a already created session bean, works. Only after the first invoking of the view this happens.

      I don't see any cause why the first event should not process phase 4 and 5 ( like it does when only one menu is used ), so imho it's a bug.

      kind regards

      Torsten

      Attachments

        Activity

          People

            Unassigned Unassigned
            tkrah Torsten Krah
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: