a4j:include and a4j:poll interaction error - wrong navigatio
horako Oct 27, 2008 1:12 PMHi,
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>
 
    