3 Replies Latest reply on Oct 28, 2008 5:45 AM by Ondrej Horak

    a4j:include and a4j:poll interaction error - wrong navigatio

    Ondrej Horak Newbie

      Hi,

      I have problem with navigation rules for <a4j:include> tag when it is on the same page as the <a4j:poll> tag. Sometimes it shows wrong content inside of the <a4j:include>. It only happens when I use <a4j:poll> for rerendering a different part of the page.

      More details:
      I have a page which contains:
      1) order ticket (a small wizard - 3 steps - form -> confirmation -> result page). When an user confirms his order, it is entered into the order book (list of orders)
      2) order book - contains all orders entered by the order ticket

      How it is done
      1) the order ticket is <aj4:include>
      2) the order book is a simple table which is rerendered by <a4j:poll> tag every 1 sec.

      What is wrong:
      Sometimes (more often when the interval is shorter) the order ticket steps are in wrong order. e.g.: it goes from the result to the confirmation step. But my result action returns "form" which is mapped to the form.xhtml page.
      When I use the ordet ticket wizard without the order book it works all fine.

      I do not use any special thing like conversation scope or keepalive bean. I send all values all the time to the EVENT scope bean.

      Has anybody had similar problems?

      Thanks for help,
      Ondrej

      <ui:define name="main">
      
       <!-- Order Ticket -->
       <rich:panel id="orderTicket" renderRegionOnly="true"
       styleClass="panelBottomMargin componentContainer" headerClass="panelHeaderThick"
       bodyClass="componentContainerBody"
       header="Order Ticket"
       rendered="#{!marketDetail.tradingContract.completed}">
       <a4j:region id="wizard" renderRegionOnly="true" immediate="true">
       <a4j:form eventsQueue="pollQueue">
       <a4j:include viewId="/market/trading/interfaces/orderticket/form.xhtml"/>
       </a4j:form>
       </a4j:region>
       </rich:panel>
      
      
      
       <!-- POLL -->
       <a4j:region>
       <a4j:form>
       <a4j:poll interval="500" id="poll" name="poll"
       ajaxSingle="true"
       eventsQueue="pollQueue"
       reRender="orderBook, poll"
       limitToList="true">
       <f:param name="contractId" value="#{orderticket.contractId}"/>
       </a4j:poll>
       </a4j:form>
       </a4j:region>
       <!-- Order Book -->
       <rich:panel id="orderBook" name="orderBook"
       styleClass="panelBottomMargin componentContainer" headerClass="panelHeaderThick"
       header="Order Book"
       bodyClass="componentContainerBody"
       rendered="#{!marketDetail.tradingContract.completed}">
       <ui:include src="inc/orderbook.xhtml"/>
       </rich:panel>
       </ui:define>