8 Replies Latest reply on Feb 15, 2008 8:26 AM by mars1412

    How to not propagate conversations??

    Marcus Schmidke Newbie

      Seam 2.0.0.GA, Facelets

      Hello,

      after a couple of months of continuous work with Seam, I today figured out that I still did not completely understand concepts of conversations and their propagation.

      I have an application with a start page (rendered using an EVENT scoped bean) and three pages which are conversation scoped. All of this three have an "Ok" and a "Cancel" button which lead back to the start page.

      Every page is embedded in a template which renders a menu on top. From that menu, you can reach any of the four pages. Clicking on the menu shall cancel the page currently displayed.

      There are three conversation scoped beans for the three pages. Any of them has a @Create @Begin method to start it's conversation. The action methods for Ok and Cancel are marked as @End.

      For the menu, I want to use rich:dropDownMenu, but have the same problem if I use s:link. I have marked every menu entry with

      <s:conversationPropagation type="end" />
      

      (or s:link with propagation="end").

      Then I put a breakpoint on bean constructor and on @Remove methods and clicked around in my menu.

      Clicking the buttons works absolutely fine. Beans are created and destroyed exactly when I expect them to be.

      But clicking around in the menu has strange results. The beans get never destroyed when expected, beans get reused sometimes and so on.

      A propagation of "none", however, works like expected. New conversations are started every time, and the old ones hang around unused until timed out. But this is not what I want - in fact, I want to cancel the conversation when the menu is selected. This isn't unusual, I think, so I am sure I am doing something completely wrong, or?


      Marcus.