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

Reply via email to