Martin Cooper wrote:

-----Original Message-----
From: Eddie Bush [mailto:ekbush@;swbell.net]
Sent: Monday, November 11, 2002 2:46 PM
To: Struts Users Mailing List
Subject: Re: [SIDEBAR] Form population (Was RE: request.setAttribute()
form confusion)


Sri, pardon me, but I don't see how what you've said has anything to do with the point I was making. My sole point is that the actual creation (instantiation) of the form bean itself is a very mechanical act that Struts can perform on your behalf. There is no need to ever bother with creating a bean and placing it into some scope - just configure things properly and let it be done for you. Yes, you may very well need to initialize it's values in an action - but that is a seperate act from instantiation.

I think you missed the point here, Eddie (or perhaps I missed that you
didn't miss the point :).

Think about it this way. Struts will create your form bean automagically in
a couple of cases: when it needs to populate one from an incoming request,
and when it needs to render a form but can't find the corresponding form
bean.

Now consider the case where you need to populate the form with some values
that the Action came up with somehow. You'd do that by having the values in
the form bean properties, right? That way, the Struts HTML tags will do the
work for you.

But now consider the case where you haven't yet invoked anything in the app
that would cause the appropriate form bean to be instantiated. The action
that came up with the values might have been invoked with a different form
bean, or perhaps no form bean at all. So Struts hasn't instantiated the bean
yet. Struts *will* instantiate the bean when it the <html:form> tag is
processed, but by then, it's too late for the Action to populate the form
bean.

Yes, but at this point it's not terribly important - assuming the submit of this form is the first time the form is really needed (for capturing values). I was just trying to empasize why a person wanted to trust Struts to do this for them - not cover all bases of usage ;-)

So the only way for the action to pre-populate the form bean, so that those
values are picked up by the Struts HTML tags to populate the form is for the
action to instantiate the form bean itself.

Huh? Ok I think I missed something here. I've always had my form available to me if I told Struts an action used it. If you're not pre-populating (for display) it's really not important to have it created ahead of time. You're guaranteed the form will be there to capture any submit as we process the associated form (read: we check for an existing form and instantiate one if it does not exist) before we populate. One of us is confused. My bet is that you misinterpreted what I was getting at. Again, my sole point was that Struts will create forms for a person if they simply connect the dots between the form and the action so that Struts is aware that it needs to be done.

One way of creating the form bean is RequestUtils.createActionForm().

--
Martin Cooper

--
Eddie Bush




--
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