Ah.  So is the idea that you *could* have logic in an interceptor that
executes after the action by adding logic after invocation.invoke()?
invocation.invoke is the method that executes the next interceptor,
correct?

Frick.  A redirect is exactly what is causing my issue.

Thank you, kindly!

Beez
r 5347 

-----Original Message-----
From: Dave Newton [mailto:davelnew...@gmail.com] 
Sent: Friday, December 10, 2010 2:15 PM
To: Struts Users Mailing List
Subject: Re: Struts Interceptors

Interceptors don't "execute in reverse order", they're each a "wrapper"
around the next interceptor's execution, and eventually, the action
itself.

If the interceptor is firing twice there's been to requests, which could
be a result of a redirect.

Dave

On Fri, Dec 10, 2010 at 1:50 PM, Biesbrock, Kevin
<biesbrock.ke...@aoins.com
> wrote:

> I'm not really sure how to ask this question, so please bear with me.
>
> Requirement:
> The system has several functions which a typical user can perform.  
> The user selects a function and the appropriate action is executed.  
> If that action implements myObjectAware, myObjectInterceptor retrieves

> myObject (which is based on dates).  This is all working correctly.
>
> The Problem:
> An administrative user has the option to override these 
> function/date-based selectors by providing myObjectId as a parameter 
> in the url (e.g., ?myObjectId=1).  While watching the logs, the 
> myObjectInterceptor is executed the first time with myObjectId=1.  
> This is where my understanding becomes a little cloudy.  I believe 
> after the interceptor is executed initially (and the rest of the 
> interceptor stack is executed), the action is executed, and then the 
> interceptors are executed in reverse order.  This is what appears to 
> be happening and the second time my interceptor is executed, 
> myObjectid=null (i.e., myObjectId is not a parameter on the request).
>
> I think I understand why this happens...because in the response (i.e.,

> the result), the myObjectId is not being carried over from the initial

> request.
>
> Because myObjectId=null, myObjectInterceptor believes that it should 
> resort to the function/date-based selection of myObject; thereby 
> effectively ignoring the administrative user's request and selecting 
> myObject by function/date.
>
> Question:
> How should I be handling the second execution of myObjectInterceptor?
> 1. Is there a way to ignore the second execution of
myObjectInterceptor?
> 2. Should I create a public property on *all of my actions* to store 
> myObjectId?
> 3. Some much simpler way I'm overlooking?
>
> Hopefully this is enough info to at least get a conversation started.
>
> I appreciate your time in reading this.
>
> Sincerely,
> Beez
>


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to