struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adam Hardy <>
Subject Re: preparable vs modelDriven
Date Thu, 31 Jan 2008 22:03:18 GMT
I don't think you are strictly conveying the intended usage, when you say that 
the getModel() method will 'later' return the model. It depends how your 
interceptor stack is ordered. In the docs, it explicitly says the 
ModelDrivenInterceptor should come before ParametersInterceptor, as often the 
PrepareInterceptor does.

Both ModelDriven- and PrepareInterceptor can retrieve the model and place it in 
instance variables on the action.

What I originally wanted to ask (whether I conveyed my question correctly is 
another matter) was: what's the difference in intention and implementation 
between these two?


Roberto Nunnari on 31/01/08 18:12, wrote:
> The prepare() method task is to retrive the model
> and store it as an instance variable.
> The getModel() method will later return the model
> when asked by the framework that will put it on the
> value stack.
> Please correct me if I'm wrong.
> Adam Hardy wrote:
>> Dave Newton on 31/01/08 16:00, wrote:
>>> Adam Hardy <> wrote:
>>>> Dave Newton on 31/01/08 15:29, wrote:
>>>>> Adam Hardy <> wrote:
>>>>>> * ModelDriven: how do I get hold of my model during my action 
>>>>>> methods? I
>>>>>> don't  want to get getModel() again, because that will retrieve 
>>>>>> another
>>>>>> instance of the  entity and not the one that was populated by struts.
>>>>> Lazy initialization (via null check or by setting an instance var), or
>>>>> config through Spring, or...
>>>> If your getModel() puts the model entity on an instance variable, won't
>>>> that confuse the param interceptor? 
>>> Depends on what instance variable you put it in, I suppose. One of your
>>> questions was how to access the model object w/o running through a 
>>> getModel()
>>> method that would re-instantiate; lazily initializing an instance 
>>> variable in
>>> getModel() then using that instance variable is one way of dealing 
>>> with that.
>> OK, that makes sense now, thanks. What I thought would be the more 
>> obvious way of obtaining the model would be to fetch it from where 
>> struts puts it when it calls getModel(), i.e. the value stack, however 
>> I don't see any access methods for doing that, particulary on 
>> ActionSupport.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message