You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Johan Compagner <jc...@j-com.nl> on 2001/03/07 15:25:07 UTC
RE: Populating a Form (a proposal)
The last (using 2 actions) is how it is done in the struts example
(last time i checked) with registering or changing user data.
But i also would like to have a popuplate without going through a action.
Then i could request this:
userdata.jsp?userid=1
instead of this:
userdata.do?userid=1
The form has a setUserId(int i)
and populates itself from a database.
The problem with populating from a database is that if the form
is not created or accessed through a action the servlet variable is not
set!!
So i can't get the datasource!!
I have made my own Form tag that extends the Struts formtag.
public int doStartTag() throws JspException {
int iReturn = super.doStartTag();
Object bean = pageContext.getAttribute(Constants.BEAN_KEY);
if (bean instanceof ServletContextActionForm)
{
((ServletContextActionForm)
bean).setServletContext(pageContext.getServletContext());
}
/*
maybe popuplate like this??
RequestUtils.populate(((ServletContextActionForm) bean),
mapping.getPrefix(),
mapping.getSuffix(),
*/ pageContext.getRequest());
return iReturn;
}
As you can see i have implemented my own doStartTag() and if it is a special
actionform
i will set the servlet context so that ( if it works ) i can access
everything i want.
also calling populate is not implemented yet but it should work.
I would like to see this in Struts it self. Because for a very simple thing
like
filling a form that mostly is decided by a parameter like userid=X through
another
action object is very boring.
Johan
> -----Original Message-----
> From: James Howe [mailto:jwh@allencreek.com]
> Sent: Wednesday, March 07, 2001 2:54 PM
> To: struts-user@jakarta.apache.org
> Subject: Populating a Form
>
>
> I have what may be a stupid question regarding the usage of forms in
> Struts. I have a web application which has a page displaying a list of
> items. When the user clicks on one of the items I want to bring
> up a form
> which allows the user to edit the items. Nothing too hard. My
> question is
> about what the best way is to go about populating the form within the
> Struts framework. If I were just displaying information, I would simply
> create an Action for the page which would populate a bean which
> would then
> be referenced by the corresponding JSP page. However, since this is a
> form, I want to make use of Struts form handling capabilities.
> If I use a
> form action, the action occurs on submission. How do I control
> the initial
> values of the form?
>
> One way that I can think of is to use some sort of "action"
> parameter. If
> the action parameter is missing, the form action populates the bean
> properties, otherwise it saves the bean properties back to the
> system. The
> problem I have with this approach is that I have to have a hidden
> field on
> the page which is used to store the "action" value. It's not a big deal,
> but it seems clumsy. The other approach I can think of is to have a
> regular action defined which is used to populate the page and a
> form action
> which is used for form submission. This requires two actions for
> the same
> JSP but eliminates some of the funny business with hidden fields.
>
> I guess my question is, how do most people handle the pre-population of
> data entry forms.
>
> Thanks.
>
>