Subject: Re: Design question on loading form data
From: Vic Cekvenich <[EMAIL PROTECTED]>
===
Here is sample pseudo code illustrating for one approach in
action/perform. Call for the model bean to populate in the action's
perform. Maybe the code of that retrieval and anything else having to do
with data is in the model bean. I sometimes use the FormBean, with
getters and setters, and put a retrieve, update, insert, delete methods
in the bean, so model is in one place, should there be any bugs.
Also, you can create such a bean, and test it in just a normal servlet,
before putting it in Struts. You could also test or use that bean anyplace.
package app;
public class NameLstAct extends baseAct {
public ActionForward mperform( ActionMapping mapping,
ActionForm form,HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
// if list
sf=(SearchFrm)session.getAttribute("SearchFrm"); // get the arguments
String fn= sf.getFstName();
String ln= sf.getLstName();
NameLstFrm nl = new NameLstFrm(); // make the Form Bean
nl.dbCon(); // ask bean to get a connection from the pool
// get us a list of names; based on retrieval argments
nl.retrieve(fn,ln);
//obviously, the FormBean has the SQL command coded in the above method
nl.dbDisCon(); // we do not need the connection no more
return(mapping.findForward("nameLstPg"));
// if save
// {nl.validate(); nl.update(); ... }
// if delete {nl.delete(); ...}
// if new/insert {nl.inset(); ...}
}// perform Act
} // end of code.
Mattias Norlander wrote:
> Hello!
>
> If i want to fill a form with data (from, say a database) before showing
> it to the user: Can this be done in reset() method of the form, or should
> it be in the perform() method of the action class?
>
> I think that doing it in the reset() method produces the cleanest code.
> This can be done in quite a dynamic way too, since the reset method has
> access to the http request and the mapping. It can use these to get info
> on what (if any) item to load from the database.
>
> Short example:
>
> <--------------------------->
> I have an action called editOrder and a form called orderForm.
> In the reset method of the form:
>
> reset(mapping,request) {
>
> // check mapping, the form might be used by other actions
> // that don't want our little featue
> if (mapping.getType.equals("editOrder") {
> int orderId = request.getInt("orderId");
> OrderData order = db.loadOrder(orderId);
> this.orderName = order.getName();
> this.orderSize = order.getSize();
> // .. and so on
>
> }
>
> }
> <--------------------------->
>
> Any suggestions or thoughts around this way of doing things? Looks nice to
> me,
> but I'd sure like to know if there is something nasty that I've missed here.
>
> Regards,
>
> Mattias Norlander
>
>
> --
> To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>