Intermixed response...

> -----Original Message-----
> From: Craig R. McClanahan [mailto:craigmcc@;apache.org] 
> Sent: Tuesday, November 12, 2002 1:54 PM
> To: Struts Users Mailing List
> Subject: RE: [SIDEBAR] Form population (Was RE: 
> request.setAttribute() for m confusion)
> 
> 
> See intermixed.
> 
> On Tue, 12 Nov 2002, Martin Cooper wrote:
> 
> > Date: Tue, 12 Nov 2002 08:36:13 -0800
> > From: Martin Cooper <[EMAIL PROTECTED]>
> > Reply-To: Struts Users Mailing List <[EMAIL PROTECTED]>
> > To: 'Struts Users Mailing List' <[EMAIL PROTECTED]>
> > Subject: RE: [SIDEBAR] Form population (Was RE: 
> request.setAttribute()
> >     for m confusion)
> >
> >
> >
> > > -----Original Message-----
> > > From: Sri Sankaran [mailto:Sri.Sankaran@;sas.com]
> > > Sent: Tuesday, November 12, 2002 7:56 AM
> > > To: Struts Users Mailing List
> > > Subject: RE: [SIDEBAR] Form population (Was RE: 
> > > request.setAttribute() for m confusion)
> > >
> > >
> > > No sweat.
> > >
> > > The reason this discussion got so off whack was because I 
> tried to 
> > > slam a square peg in a round hole by continuing with 
> Kris' example 
> > > (Edit & Save actions) to make my point -- bad idea.
> > >
> > > So what *is* my scenario?
> > >
> > > Consider for example, a master-detail pair of pages.  The master 
> > > page display a list of employee names.  The detail page 
> -- which is 
> > > displayed when a user selects an employee from the master page -- 
> > > displays a collection of (possibly
> > > editable) fields that describe the selected employee.
> > >
> > > The form-bean associated with the detail page is your typical 
> > > EmployeeBean object.  Even if the struts-config is set up 
> with the 
> > > right action mapping like
> > >
> > > <action path="/detail"
> > >         type="com.acme.DetailAction"
> > >         name="employeeBean"/>
> > >
> > > how can Struts know that the user selected the user 'John 
> Smith' on 
> > > the master page?  Ergo, the need to create the necessary 
> form bean 
> > > in the action for the master page.  We cannot wait for/depend on 
> > > Struts to create it.
> > >
> > > I don't like the fact that the MasterAction needs to have 
> knowledge 
> > > of the requirements for the detail page (the type of 
> bean, the name 
> > > under which it is accessed) -- or maybe that isn't so bad....??
> >
> > Yes, it is bad. Actually, it's a bit of a mystery to me that this 
> > issue doesn't come up more often (or perhaps I just always miss it).
> >
> > One solution (which Craig would probably shoot me for mentioning :)
> 
> Yep :-).  For those who tuned in late, I am *not* a fan of 
> this -- in part because it has some pretty unexpected 
> semantics w.r.t. form beans.
> 
> > is
> > action chaining. That is, your master action chains (i.e. 
> forwards) to 
> > a detail action that prepares the bean for the detail page. 
> There are 
> > some problems with chaining actions, though, so it's not 
> the best way 
> > to handle this.
> >
> > An alternative is to split your actions into two phases, 
> and keep the 
> > logic of those two phases separate, using additional 
> classes. This is 
> > what I'm doing now, and it's pretty clean. Unfortunately, at this 
> > point my employer owns the code, but I'll see if I can 
> wrest it free 
> > at some point. ;-)
> 
> If you know what your destination action's path is, you 
> actually *can* divine what form bean is needed pretty easily. 
>  Let's assume we're talking about the ultimate action at path "/foo":
> 
>   ApplicationConfig appConfig = (ApplicationConfig)
>     request.getAttribute(Globals.APPLICATION_KEY);
>   ActionConfig actionConfig = appConfig.findActionConfig("/foo");
>   String name = actionConfig.getName(); // Form bean name
>   String attribute = actionConfig.getAttribute(); // 
> Attribute to store under
>   String scope = actionConfig.getScope(); // Scope to store in
>   FormBeanConfig fbConfig = appConfig.findFormBeanConfig(name);
> 
> Now you've got all the metadata you need to dynamically 
> instantiate the appropriate form bean, and store it under the 
> appropriate attribute in the appropriate scope, without hard 
> coding any of this stuff.

This goes from having to have information about the bean to having information about 
the action path. Six one way, half dozen the other?

> 
> >
> > --
> > Martin Cooper
> 
> Craig
> 

Sri

> 
> --
> To unsubscribe, e-mail:   
> <mailto:struts-user-> [EMAIL PROTECTED]>
> For 
> additional commands, 
> e-mail: <mailto:struts-user-help@;jakarta.apache.org>
> 
> 

--
To unsubscribe, e-mail:   <mailto:struts-user-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:struts-user-help@;jakarta.apache.org>

Reply via email to