Thank you very much for your detailed and prompt
response.
Yes I "want to show a user a form with data
pre-filled based on the database data?" In Oracle
form means interface whereas in Struts it is a bit
ambiguous. I will say interface or jsp next time.
More to the point, I followed your instructions to the
letter; as a result of this, I have been able to
achieve my objective - to show a user a form with data
pre-filled based on the database data.
Thank you very much indeed.
Ola Oke.
--- Joe Germuska <[EMAIL PROTECTED]> wrote: > At 1:36
PM +0100 6/28/04, Research labs wrote:
> >//***Please note that I am using DispatchAction not
> >Action***
> >
> >Please tell me how to populate fields in a form
> with
> >data retrieved from a database table.
> >Please note that I am particular about how to do
> this
> >using Struts tags etc.
>
> Are you saying that you want to show a user a form
> with data
> pre-filled based on the database data?
>
> The way to do this is to have an instance of a form
> bean in the
> action before you forward to the view, populate its
> values, and put
> it in the request or session under the attribute
> name where the
> html:form tag looks for it.
>
> In a formal sense, Struts doesn't make this very
> easy, because the
> API for requesting an instance of a form bean is not
> quite engineered
> for it. However, if you just want it to work, you
> could simply
> instantiate your own form bean using a constructor
> and then put it
> into scope. (More on the "right way" to do
> this--one which also
> supports DynaForms-- in a moment.) The attribute
> name is the same
> name you give the form bean in the action mapping
> and form-bean
> configurations in the struts-config.xml file, and of
> course, you
> should use the same scope that you use in your
> action-mapping. That
> is, for something like this:
>
> <action path="/UpdatePublicationDetails"
> type="....webui.PreferencesController"
> parameter="updatePublicationDetails"
> name="updatePublicationDetailsForm"
> scope="request"
> validate="true">
> <forward name="page"
> path=".EditYourPublications" />
> </action>
>
> in your action, you would do:
>
> MyActionForm viewForm = new MyActionForm();
> // populate bean here...
> request.setAttribute("updatePublicationDetailsForm",
> viewForm);
>
> If you need a DynaForm, then you need Struts to give
> it to you,
> because there's no simple constructor. Depending on
> the version of
> Struts you're using, there are one or two static
> methods in
> org.apache.struts.util.RequestUtils called
> "createActionForm(...)"
> If you look at the JavaDoc for RequestUtils and
> Action, you should be
> able to "chart a path" by which you can use the
> Action to get the
> objects you need to pass in as parameters to
> createActionForm(...)
> Once you get the form bean, you'd do the same --
> populate its
> properties and put it in request or session scope.
>
> Of course, if you happen to be using session-scoped
> forms, you may
> find that the ActionForm which is passed into your
> execute method is
> the same type that you want in the next view, in
> which case you can
> set properties and even take it for granted that
> it's already in
> session scope.
>
> There are various ideas about making this more
> straightforward in the
> future which have been discussed thoroughly on both
> the dev and user
> lists, but hopefully this addresses your immediate
> needs.
>
> Joe
>
> --
> Joe Germuska
> [EMAIL PROTECTED]
> http://blog.germuska.com
> "In fact, when I die, if I don't hear 'A Love
> Supreme,' I'll turn
> back; I'll know I'm in the wrong place."
> - Carlos Santana
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
>
>
___________________________________________________________ALL-NEW Yahoo! Messenger -
sooooo many all-new ways to express yourself http://uk.messenger.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]