For any who might need/want this, here is my current solution (this only works on FORM submits, but can be expanded upon):
public Object onPrepareForSubmit() { // If there is no session, return the timeout page. if (sessionExists == false) return sessionTimeout; else return null; } @SessionState private Session session; private boolean sessionExists; @InjectPage private SessionTimeout sessionTimeout; Basically, if the session has vanished, it interrupts the FORM submission and redirects to the SessionTimeout page. mrg On Fri, Sep 18, 2009 at 9:37 AM, Michael Gentry <mgen...@masslight.net> wrote: > Well, I can't just create a new object, since I was editing an > existing one. So I had my object persisted, but now it is gone and > I'm getting an NPE. Tapestry doesn't seem to know my application > requires the session (and present a session timeout page) and I > haven't found a way to tell it to stop processing the FORM submission > yet. > > I'll look at your conversations link and see if that gives me ideas. > > mrg > > > On Thu, Sep 17, 2009 at 5:33 PM, Kalle Korhonen > <kalle.o.korho...@gmail.com> wrote: >> Just to prevent nullpointers, in your onActivate() you should have if >> (object == null) object = new Object(). Obviously that could lead to >> unexpected results to the user - based on object state you could >> present a a message to the user etc. but there are quite a few >> different cases that you need to handle. Or you can detach the "page >> timeout" from session timeout and use some type of conversations, e.g. >> http://docs.codehaus.org/display/TRAILS/Conversations+in+Trails. >> >> Kalle >> >> >> On Thu, Sep 17, 2009 at 2:08 PM, Michael Gentry <mgen...@masslight.net> >> wrote: >>> Is there a way in T5.1 to have graceful session timeout handling on >>> form submission or links? >>> >>> For example, I have a form with a bunch of inputs and I wait to click >>> the button until my 2-minute session times out (I'm >>> developing/debugging, so a short session expiration). When I submit >>> the form, I get NPEs because the objects I required (and used @Persist >>> on) are no longer there. I'd like a way to gracefully handle that and >>> present a message or something. I've been searching the list, the >>> documentation, the wiki, and the JumpStart, but still haven't found >>> the right magic. >>> >>> Thanks, >>> >>> mrg >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>> For additional commands, e-mail: users-h...@tapestry.apache.org >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> >> > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org