I've solved some of my problems in another way, by overriding the
StaleLinkExceptionPresenter in hivemodule.xml. My custom presenter does
nothing, causing a new render of the requested page with the last good state
when a StaleLinkException occurs. The submitted data is lost, because the
rewind phase crashed.

A good description for overriding exception presenters:
http://downside.ch/blog/?p=19

This solution pretty much does what the user expects when he hits "refresh",
because I always persist the most important state info in the session. But
for back/forward clicks, I still need the "magic back/forward event hook" :)


On 2/6/06, Inge Solvoll <[EMAIL PROTECTED]> wrote:
>
> Thanks, found the demo page now. I downloaded the new tacos4 beta
> distribution and checked out the demo, my previous installation was the
> alpha7 I think.
>
> I've tried the demo, this page:
> http://localhost/tacos4/app?page=forms%2FFormEffectsExample&service=page
>
> I suppose the intended behaviour is this:
>
> 1. You pick a country, and click "select".
> 2. You change your mind, and want to go back. You click the backbutton.
> 3. You are back at the country selection.
>
> But actually this doesn't work, neither in firefox or IE. When I click the
> back button, the page stays the same, the clearLink component does't seem to
> be triggered by the back button. When I click the clearLink link, the
> country selection is viewed again.
>
> I'm actually beginning to doubt this "back button magic", has anyone made
> this work in a browser? Because I have not yet seen this actually work in a
> browser. I've also tried to implement it using dojo from this article:
> http://dojotoolkit.org/docs/intro_to_dojo_io.html, but I haven't seen an
> actual running demo of this, and it didn't work for me.
>
> If someone knows about a demo somewhere that shows how to implement the
> back button fix, please let me know :)
>
> Inge
>
> On 2/4/06, Mark Stang <[EMAIL PROTECTED]> wrote:
> >
> > Inge,
> > I think it is something I will want to use, once it is figured out.
> >
> > So, keep the e-mails coming!
> >
> > Mark
> >
> >
> > -----Original Message-----
> > From: Jesse Kuhnert [mailto: [EMAIL PROTECTED]
> > Sent: Fri 2/3/2006 4:17 PM
> > To: Tapestry users
> > Subject: Re: Tapestry and backbutton
> >
> > It's not bother at all, keep em coming until I say I can't help you :)
> >
> > If you go look at the
> > http://tacos.mine.nu/tacos-demo4/forms/FormEffectsExample.html
> >
> > example page you'll find that it uses these parameters.
> >
> > Good luck :)
> >
> >
> > On 2/3/06, Inge Solvoll <[EMAIL PROTECTED]> wrote:
> > >
> > > Yes :) I have clicked a few links and built up some history before I
> > click
> > > the back button.
> > >
> > > Thanks very much for your patience, I won't bother you and the list
> > more
> > > with my mess here, but I would love some hints on where to look in the
> > > demo
> > > application for similar functionality. I don't think there exists any
> > back
> > > button fix examples in there?
> > >
> > > Inge
> > >
> > > On 2/3/06, Jesse Kuhnert <[EMAIL PROTECTED]> wrote:
> > > >
> > > > You do know that the forward/backward link portions only work
> > ~after~
> > > you
> > > > have submitted a form right?
> > > >
> > > > On 2/3/06, Inge Solvoll <[EMAIL PROTECTED]> wrote:
> > > > >
> > > > > Yes, like this:
> > > > >
> > > > > <script type="text/javascript">
> > > > >         djConfig = { isDebug: true,
> > > > >                      baseRelativePath: "/moby/script/dojo/",
> > > > >                      preventBackButtonFix: false };
> > > > >      </script>
> > > > >
> > > > >
> > > > > Dojo works, debug is printed at the bottom of the page, like this:
> > > > >
> > > > > DEBUG: DEPRECATED: dojo.alg.Alg is deprecated, use dojo.langinstead
> > > > > DEBUG: DEPRECATED: dojo.alg.Alg is deprecated, use dojo.langinstead
> > > > > DEBUG: DEPRECATED: dojo.graphics.htmlEffects is deprecated, use
> > > > > dojo.fx.htmlinstead
> > > > >
> > > > > There was an error in the code I entered earlier, I now have
> > placed my
> > > > > link
> > > > > components in the HTML template too, not only in the page file.
> > > > >
> > > > > I've tried to add updateComponets bindings to both the links and
> > the
> > > > form,
> > > > > no luck. In my HTML, I have one component, formTest, that prints
> > > > something
> > > > > dynamically. I also have a div with id "formStatus".
> > > > >
> > > > > My newest page file:
> > > > >
> > > > >   <component id="form" type="tacos:AjaxForm">
> > > > >     <binding name="listener" value="listeners.formSubmit"/>
> > > > >     <binding name="backLink" value="component:backLink"/>
> > > > >     <binding name="forwardLink" value="component:forwardLink"/>
> > > > >     <binding name="statusElement" value="'formStatus'"/>
> > > > >     <binding name="updateComponents" value="{'formTest'}"/>
> > > > >   </component>
> > > > >
> > > > >
> > > > > Thanks.
> > > > > Inge
> > > > >
> > > > >
> > > > > On 2/3/06, Jesse Kuhnert <[EMAIL PROTECTED] > wrote:
> > > > > >
> > > > > > Does you dojo configuration section look like this?
> > > > > >
> > > > > > <script type="text/javascript">
> > > > > >             djConfig = { isDebug: false,
> > > > > >                          baseRelativePath: "js/dojo/",
> > > > > >                          preventBackButtonFix: false };
> > > > > >          </script>
> > > > > >
> > > > > >
> > > > > >
> > > > > > On 2/3/06, Inge Solvoll <[EMAIL PROTECTED] > wrote:
> > > > > > >
> > > > > > > After some obvious bugfixes, as well as many attempts to try
> > > > different
> > > > > > > angles of updated objects on the client, I'm still stuck. I've
> >
> > > made
> > > > my
> > > > > > > AjaxDirectLink components work, I can click them and the
> > listeners
> > > > are
> > > > > > > called. I've made sure that my dojo js directory is the excact
> >
> > > same
> > > > as
> > > > > > the
> > > > > > > tacos4 demo application. Still nothing happens when I click
> > the
> > > back
> > > > > and
> > > > > > > forward buttons, tested in IE and Firefox.
> > > > > > >
> > > > > > > Just to make sure: Is this documented to work, or might there
> > be
> > > > bugs
> > > > > in
> > > > > > > the
> > > > > > > tacos implementation for these back button things?
> > > > > > >
> > > > > > > Inge
> > > > > > >
> > > > > > > On 2/2/06, Inge Solvoll <[EMAIL PROTECTED]> wrote:
> > > > > > > >
> > > > > > > > Still no luck on this one. When i click the backbutton, none
> > of
> > > my
> > > > > > > server
> > > > > > > > side listeners are triggered, and nothing apart from the
> > regular
> > > > > form
> > > > > > > stuff
> > > > > > > > happens. And the StaleLink of course when I do something
> > else...
> > > > > > > >
> > > > > > > > My page file contains this:
> > > > > > > >
> > > > > > > >   <component id="form" type="tacos:AjaxForm">
> > > > > > > >     <binding name="listener" value="listener:formSubmit"/>
> > > > > > > >     <binding name="backLink" value="component:backLink"/>
> > > > > > > >     <binding name="forwardLink"
> > value="component:forwardLink"/>
> > > > > > > >     <binding name="statusElement" value="'formStatus'"/>
> > > > > > > >     <binding name="updateComponents" value="{'formTest'}"/>
> > > > > > > >   </component>
> > > > > > > >
> > > > > > > >   <component id="backLink" type="tacos:AjaxDirectLink">
> > > > > > > >     <binding name="listener" value="listener:backButton"/>
> > > > > > > >     <binding name="updateComponents" value="{'formTest'}"/>
> > > > > > > >   </component>
> > > > > > > >
> > > > > > > >   <component id="forwardLink" type="tacos:AjaxDirectLink">
> > > > > > > >     <binding name="listener" value="listener:nextButton"/>
> > > > > > > >     <binding name="updateComponents" value="{'formTest'}"/>
> > > > > > > >   </component>
> > > > > > > >
> > > > > > > > My html file contains this:
> > > > > > > >
> > > > > > > > <form jwcid="form">
> > > > > > > > ...lots of other stuff...
> > > > > > > > <div id="formStatus">
> > > > > > > >   Form status here...
> > > > > > > > </div>
> > > > > > > > <input type="text" jwcid="[EMAIL PROTECTED]" value="ognl:
> > > > > activeCategory.id
> > > > > > ">
> > > > > > > >   ***Active category is printed here.***
> > > > > > > > </input>
> > > > > > > > ...lots of other stuff...
> > > > > > > > </form>
> > > > > > > >
> > > > > > > > My java file contains this:
> > > > > > > >
> > > > > > > > public void backButton(IRequestCycle cycle) {
> > > > > > > >     log.debug("Entered backButton method");
> > > > > > > >   }
> > > > > > > >
> > > > > > > >   public void forwardButton(IRequestCycle cycle) {
> > > > > > > >     log.debug("Entered forwardButton method");
> > > > > > > >   }
> > > > > > > >
> > > > > > > >
> > > > > > > > Any help would be appreciated, I continue to try to make
> > this
> > > > work,
> > > > > > but
> > > > > > > > for now I have absolutely nothing to hang on to, I get no
> > > response
> > > > > > from
> > > > > > > the
> > > > > > > > tacos components...
> > > > > > > >
> > > > > > > > Inge
> > > > > > > >
> > > > > > > > On 2/1/06, Inge Solvoll <[EMAIL PROTECTED]> wrote:
> > > > > > > > >
> > > > > > > > > Thanks for the reply! I moved the deadline on this a
> > little
> > > bit,
> > > > > > will
> > > > > > > > > try to implement it within a few weeks. I'll get back to
> > it
> > > > here.
> > > > > > > > >
> > > > > > > > > Inge
> > > > > > > > >
> > > > > > > > > On 1/24/06, Jesse Kuhnert < [EMAIL PROTECTED]> wrote:
> > > > > > > > > >
> > > > > > > > > > Three things come to mind:
> > > > > > > > > >
> > > > > > > > > > -) When using backLink, it is almost always desirable to
> > use
> > > a
> > > > > > > > > > combination
> > > > > > > > > > of backLink/forwardLink so that behaviour makes sense in
> > > both
> > > > > > > > > > directions.
> > > > > > > > > >
> > > > > > > > > > -) Your backLink doesn't specify which areas of the page
> > to
> > > > > > refresh.
> > > > > > > > > >
> > > > > > > > > > -) I'm not entirely sure that redirects are working
> > properly
> > > > in
> > > > > > > tacos
> > > > > > > > > > right
> > > > > > > > > > now.
> > > > > > > > > >
> > > > > > > > > > On 1/24/06, Inge Solvoll < [EMAIL PROTECTED]>
> > wrote:
> > > > > > > > > > >
> > > > > > > > > > > I've tried to get this to work, looking at the demo
> > > > > application,
> > > > > > > but
> > > > > > > > > > so
> > > > > > > > > > > far
> > > > > > > > > > > no luck.
> > > > > > > > > > >
> > > > > > > > > > > When I click the back button in firefox 1.0.7, nothing
> > > > > happens.
> > > > > > > > > > There are
> > > > > > > > > > > no
> > > > > > > > > > > Javascript errors in the Javascript console.
> > > > > > > > > > > When I click the back button in IE 6, it works
> > normally,
> > > > going
> > > > > > > back
> > > > > > > > > > the
> > > > > > > > > > > usual "back button way". No visible javascript error.
> > > > > > > > > > > None of the browsers (IE, Firefox) call my listener
> > > method.
> > > > > > > > > > >
> > > > > > > > > > > My components look like this:
> > > > > > > > > > >
> > > > > > > > > > > <component id="form" type="tacos:AjaxForm">
> > > > > > > > > > >     <binding name="listener"
> > value="listener:formSubmit"/>
> > > > > > > > > > >     <binding name="backLink"
> > value="component:backLink"/>
> > > > > > > > > > >   </component>
> > > > > > > > > > >
> > > > > > > > > > >   <component id="backLink"
> > type="tacos:AjaxDirectLink">
> > > > > > > > > > >     <binding name="listener"
> > > > > value="listener:previousCategory"/>
> > > > > > > > > > >   </component>
> > > > > > > > > > >
> > > > > > > > > > > My listener method:
> > > > > > > > > > >
> > > > > > > > > > > public void previousCategory(IRequestCycle cycle) {
> > > > > > > > > > >     log.debug("Entered previousCategory method");
> > > > > > > > > > > // Redirect for clear debugging
> > > > > > > > > > >     throw new RedirectException(" http://www.amazon.com
> > ");
> > > > > > > > > > >   }
> > > > > > > > > > >
> > > > > > > > > > > Any ideas?
> > > > > > > > > > >
> > > > > > > > > > > Inge
> > > > > > > > > > >
> > > > > > > > > > > On 1/21/06, Jesse Kuhnert < [EMAIL PROTECTED] >
> > wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > You can achieve the behaviour you are asking for if
> > you
> > > > were
> > > > > > > > > > willing to
> > > > > > > > > > > > use
> > > > > > > > > > > > the tapestry form here instead:
> > > > > > > > > > > >
> > http://tacos.sourceforge.net/components/AjaxForm.html .
> > > > > > > > > > > >
> > > > > > > > > > > > Specifically, you want to specify the
> > > forwardLink/backLink
> > > > > > > actions
> > > > > > > > > > that
> > > > > > > > > > > > should be performed when the user hits the
> > forward/back
> > > > > > buttons
> > > > > > > on
> > > > > > > > > > their
> > > > > > > > > > > > web
> > > > > > > > > > > > browser client.
> > > > > > > > > > > >
> > > > > > > > > > > > j
> > > > > > > > > > > >
> > > > > > > > > > > > On 1/21/06, Stijn Christiaens < [EMAIL PROTECTED]>
> > > wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hello all,
> > > > > > > > > > > > >
> > > > > > > > > > > > > I have the following problem. I have a page which
> > > > contains
> > > > > a
> > > > > > > > > > Form and
> > > > > > > > > > > > some
> > > > > > > > > > > > > RadioButtons and If components. The page
> > represents
> > > one
> > > > > > > question
> > > > > > > > > > in a
> > > > > > > > > > > > > multiple choice system (hence the form with the
> > > > > > radiobuttons).
> > > > > > > > > > On
> > > > > > > > > > > > submit,
> > > > > > > > > > > > > the page reloads with the next question.
> > > > > > > > > > > > > Now if I go back and the next question has the
> > same
> > > > amount
> > > > > > of
> > > > > > > > > > answers
> > > > > > > > > > > > (eg.
> > > > > > > > > > > > > 3 RadioButtons), no problem (well, not always :-).
> > If
> > > > the
> > > > > > next
> > > > > > > > > > > question
> > > > > > > > > > > > has
> > > > > > > > > > > > > a different number (eg. 2), Tapestry will come
> > crying
> > > > > about
> > > > > > > with
> > > > > > > > > > some
> > > > > > > > > > > > > StaleStateException that ActionId #x doesn't match
> > > with
> > > > > some
> > > > > > > > > > component
> > > > > > > > > > > > in
> > > > > > > > > > > > > the form.
> > > > > > > > > > > > > Obviously this is because Tapestry thinks that it
> > is
> > > at
> > > > > > > question
> > > > > > > > > > 2,
> > > > > > > > > > > > while
> > > > > > > > > > > > > the back button caused the browser to be back at
> > > > question
> > > > > 1.
> > > > > > > > > > > > >
> > > > > > > > > > > > > That's about it. Now to my question. How can I fix
> > > this?
> > > > > So
> > > > > > if
> > > > > > > > > > the
> > > > > > > > > > > back
> > > > > > > > > > > > > button is pressed, Tapestry will rebuild the Form
> > > based
> > > > on
> > > > > > > data
> > > > > > > > > > it
> > > > > > > > > > > > receives
> > > > > > > > > > > > > from the client, rather than trying to use the
> > Form
> > > > object
> > > > > > it
> > > > > > > > > > thinks
> > > > > > > > > > > is
> > > > > > > > > > > > the
> > > > > > > > > > > > > correct one.
> > > > > > > > > > > > > Is this already present in the framework?
> > > > > > > > > > > > >
> > > > > > > > > > > > > Thanks in advance.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Ciao,
> > > > > > > > > > > > >
> > > > > > > > > > > > > Stijn
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > >
> > > >
> > ---------------------------------------------------------------------
> > > > > > > > > > > > > To unsubscribe, e-mail:
> > > > > > > [EMAIL PROTECTED]
> > > > > > > > > >
> > > > > > > > > > > > > For additional commands, e-mail:
> > > > > > > > > > [EMAIL PROTECTED]
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
> >
>

Reply via email to