1 Reply Latest reply on Feb 1, 2009 10:22 PM by alberto Gori

    Approach for ending conversations

    Naresh Bhatia Newbie

      I have the following page descriptor for a page. It begins a conversation when the page is hit. The conversation is ended if the outcome is loggedIn or the cancel button is clicked. However there are several other links and tabs on the page. I want to somehow tell Seam to end the conversation if any of these is clicked. Is there an easy way to do this? Ideally, I would not like to rely on timeouts to end conversations. What is the best practice around this?


      <page ...>
      
          <begin-conversation join="true" />
      
          <navigation from-action="#{openAccountController.openAccount}">
              <rule if-outcome="loggedIn">
                  <end-conversation/>
                  <redirect view-id="/accounts.xhtml" />
              </rule>
          </navigation>
      
          <navigation>
              <rule if-outcome="cancel">
                  <end-conversation/>
                  <redirect view-id="/home.xhtml" />
              </rule>
          </navigation>
      
      </page>
      

        • 1. Re: Approach for ending conversations
          alberto Gori Novice

          I think you should rely on timeouts ideally.


          What about if a user open a page in a new tab, using your menu, and this operation ends the current conversation? User is probably thinking that the previous task is still opened, but it's not true.


          Conversation timeouts are usually shorter then session timeouts (the time is totally configurable in Seam), and anyway you can set a specific timeout for your conversation.