1 Reply Latest reply on Aug 17, 2013 2:47 AM by thiagu.mr

    how to pass query parameter along with no-conversation-view-id

    thiagu.mr

      In my application we have two pages. One is like product search and other one is like view product detail.

      The Search page is SESSION scope and the view detail is in CONVERSATION scope.

      So the user can concurrently work on the view product detail page.

       

      If the user open same product detail page in two different browser tabs, it is in same conversation.

      otherwise it is different conversation because I am using natural conversation in that page so the product id in the URL query string as conversation ID.

       

      When the user working on the same product detail page in two different browser tabs, In one tab they end the current conversation by invoking End annotated method and then they try to perform some action in other browser tab,

      seam throws“java.lang.IllegalStateException: No active conversation context” exception.

       

      I can add “no-conversation-view-id” in my page xml declaration. But I want to pass query string along with that. How to pass the query parameter with “no-conversation-view-id” property.

       

      <page view-id="/detail/detail.xhtml" login-required="true" conversation="prodId"

            no-conversation-view-id="/search/sarch.xhtml">   

       

      <restrict>#{authorization.hasRole()}</restrict>

       

      <begin-conversation join="true" flush-mode="manual"/>

       

      <param name="prodId" value="#{detailAction.pid}"/>

       

      <action execute="#{detailAction.init}" on-postback="false"/>

       

      <navigation>

      <rule if-outcome="END">

      <end-conversation before-redirect="true"/>

      <redirect view-id="/search/search.xhtml"/>

      </rule>

      </navigation>

       

      </page>