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

Reply via email to