10 Replies Latest reply on Dec 11, 2009 7:16 PM by bashan

    How to hide-disable conversation Id in URL

    techieexchange1

      Hi,

      Would be great if anyone could help me with hiding/disabling conversation id (cid) that always comes with main URL. Actually I'm not using any explicit conversation (@Begin,@End etc,) within the application.


      I changed/removed conversation parameters in components.xml but it didn't worked.


      Thanks

        • 1. Re: How to hide-disable conversation Id in URL
          keithnaas

          That just comes with using Seam, especially when doing redirects. 


          Temporary conversations occur regardless of whether or not you use @Begins and @Ends. 


          Is there a reason why you need to hide it, other than the url looking slightly funny.  Of course, you can override the conversation id name and values to whatever your like.  For instance, when creating this reply to your topic, the cid is the conversationid.

          • 2. Re: How to hide-disable conversation Id in URL
            monkeyden

            Everything is in a conversation, even if you personally aren't using them.  It's like asking how can I get rid of jsessionid.   You can change the name if you like.


            <core:manager concurrent-request-timeout="500" 
                             conversation-timeout="120000" 
                             conversation-id-parameter="WHATEVER YOU WANT"/>

            • 3. Re: How to hide-disable conversation Id in URL
              christian.bauer

              Folks, what he probably is talking about is s:link and the fact that by default it attaches a conversation id to that rendered link. Even if the conversation was temporary and the id serves no purpose for the next GET request.


              No other button or link (h:outputlink, regular anchor tag, etc.) is going to add a conversation identifier magically.


              This is necessary because we don't know if the conversation will be temporary when we render the s:link. During rendering, some value binding might trigger a @Begin annotated method, turning it into a long-running conversation.


              So, put propagation="none" onto your s:link if you are sure that won't happen, problem solved.

              • 4. Re: How to hide-disable conversation Id in URL
                techieexchange1

                Christian Bauer wrote on Feb 29, 2008 11:10 PM:


                So, put propagation="none" onto your s:link if you are sure that won't happen, problem solved.


                Thanks for your reply.


                I never used s:link. Conversation Id get always added (with commandlink, commandbutton) to URL and its getting incremented always.


                But when I used Seam 1.2.1, I never saw cid appended to URL. It seems to be it happens only from Seam 2.0


                Why do i want to hide it?
                Not just only for clean URL but also for bookmarking purposes. I know I could use URLRewrite (eg: Seam Wiki), but just to know whether Seam could atleast hide cid.


                Let me know if its possible to hide, so that I can open a feature request.


                Thanks

                • 5. Re: How to hide-disable conversation Id in URL
                  shane.bryzak

                  Use s:conversationPropagation then, it's described in the JSF controls chapter of the docs.

                  • 6. Re: How to hide-disable conversation Id in URL
                    christian.bauer

                    Furthermore, h:commandLink and h:commandButton submit POST requests, hence can never be bookmarked anyway.

                    • 7. Re: How to hide-disable conversation Id in URL
                      lich

                      URLRewrite may be the only way,as any redirect will produce a 'cid' in url.

                      • 8. Re: How to hide-disable conversation Id in URL
                        csmithmtb

                        My related question would be: if it can't be hidden, how the value used not be a sequential simple number? Like a UUID, hashed value or something that isn't an easily guessed value?  Is there a way to (easily) change the generator of the values for the conversation?


                        Thanks


                        • 9. Re: How to hide-disable conversation Id in URL
                          norman

                          You can override the conversationIdGenerator component to set your own conversation id generation strategy.

                          • 10. Re: How to hide-disable conversation Id in URL
                            bashan

                            Hi,


                            I have the same problem.
                            Most of the pages in my web app are with a conversation of one page only. therefore, I don't want the conversation id to be seen, since it is making the url ugly. I did in all my links:


                            propagation="none"



                            which works well. But I still left with one issue: After logging, user is redirected to the home page and the cid appears. Is there a way of getting rid of it?


                            Thanks,
                            Guy.