1 Reply Latest reply on Jun 8, 2007 3:29 PM by gavin.king

    trouble with conversations

      Hi,

      Im new to seam and liking what i see, however I'm having real trouble with conversations.

      I set my class up to be in conversation scope (this class will feed the UI field info that I want to work with over several pages.)

      @Name("cardFields")
      @Scope(ScopeType.CONVERSATION)
      public class CardFields implements Serializable {
      ...

      And then set it to start a conversation in pages.xml
      <page view-id="/addcard.xhtml" action="#{conversation.begin}">

      This worked fine but I noticed that if I continually refreshed the addCard page then another conversation would get started (I could see this by using the debug page). When I thought about it this was expected as everytime a new page refresh happened seam would start another conversation because of the action in pages.xml.

      I wanted more control, so I changed pages.xml to the following
      <page view-id="/addcard.xhtml">
      <begin-conversation join="true" />
      ...
      thinking that only 1 conversation would happen.
      when i deployed this after restarting the server the same thing happend, on a refresh more conversations started happening even tho pages.xml explictly says join=true.

      Surley this can't be right? just to be doubly sure, I tried it with join=false but the same thing happened.

      Not convinced that I'd got it right I fired up the sample app called numberguess and sure enough the same thing was happening ?

      Is this a bug or have I missed something ? BTW where is the docu for pages.xml for running in navigation rules and not page flow mode ?

      Thanks

      Troy

      BTW running on OSX 10.4, java 5, jboss 4.05, seam, 1.2.1.GA





        • 1. Re: trouble with conversations
          gavin.king

          This is correct - and is, in fact, what you want 90% of the time. Think about the semantics of a HTTP GET. If you want refresh to stay in the same conversation context, you need to do a post-then-redirect, so that you get conversationId=.... in the URL.