You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Oscar Guindzberg <os...@gmail.com> on 2007/01/25 19:29:28 UTC
Nesting logic:iterate tags and indexed="true"
I have a problem nesting logic:iterate tags along with using indexed="true"
I have a form that extends ActionForm which has a Car array. Car class
has in turn a type and a Components array. Component has 2 fields:
name and qty.
This is the jsp:
<html:form ....>
<logic:iterate id="cars" name="myForm" property="cars" indexId="carsIndex">
<bean:write name="cars" property="type" />
<logic:iterate id="components" name="cars" property="components"
indexId="componentsIndex">
<html:text name="components" property="name" indexed="true"/>
<html:text name="components" property="qty" indexed="true"/>
</logic:iterate>
</logic:iterate>
</html:form>
This is the generated html:
<form ...>
Standard
<input type="text" name="components[0].name" value="door"/>
<input type="text" name="components[0].qty" value="4"/>
<input type="text" name="components[1].name" value="engine"/>
<input type="text" name="components[1].qty" value="1"/>
Superb
<input type="text" name="components[0].name" value="door"/>
<input type="text" name="components[0].qty" value="5"/>
<input type="text" name="components[1].name" value="engine"/>
<input type="text" name="components[1].qty" value="2"/>
....
</form>
If I submit the form, Struts won't be able to rebuild the Car array
with its components.
This is what I expect the html to be:
<form ...>
Standard
<input type="text" name="cars[0].components[0].name" value="door"/>
<input type="text" name="cars[0].components[0].qty" value="4"/>
<input type="text" name="cars[0].components[1].name" value="engine"/>
<input type="text" name="cars[0].components[1].qty" value="1"/>
Superb
<input type="text" name="cars[1].components[0].name" value="door"/>
<input type="text" name="cars[1].components[0].qty" value="5"/>
<input type="text" name="cars[1].components[1].name" value="engine"/>
<input type="text" name="cars[1].components[1].qty" value="2"/>
....
</form>
How can I achieve that?
Am I on the right path?
Oscar
--
Oscar Guindzberg
http://www.latbrain.com
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: Nesting logic:iterate tags and indexed="true"
Posted by Nuwan Chandrasoma <my...@gmail.com>.
Hi,
Have a look on struts nested tags.
Regards,
Nuwan
----- Original Message -----
From: "Oscar Guindzberg" <os...@gmail.com>
To: <us...@struts.apache.org>
Sent: Thursday, January 25, 2007 6:29 PM
Subject: Nesting logic:iterate tags and indexed="true"
>I have a problem nesting logic:iterate tags along with using indexed="true"
>
> I have a form that extends ActionForm which has a Car array. Car class
> has in turn a type and a Components array. Component has 2 fields:
> name and qty.
>
> This is the jsp:
>
> <html:form ....>
> <logic:iterate id="cars" name="myForm" property="cars"
> indexId="carsIndex">
> <bean:write name="cars" property="type" />
> <logic:iterate id="components" name="cars" property="components"
> indexId="componentsIndex">
> <html:text name="components" property="name" indexed="true"/>
> <html:text name="components" property="qty" indexed="true"/>
> </logic:iterate>
> </logic:iterate>
> </html:form>
>
>
> This is the generated html:
>
> <form ...>
> Standard
> <input type="text" name="components[0].name" value="door"/>
> <input type="text" name="components[0].qty" value="4"/>
> <input type="text" name="components[1].name" value="engine"/>
> <input type="text" name="components[1].qty" value="1"/>
> Superb
> <input type="text" name="components[0].name" value="door"/>
> <input type="text" name="components[0].qty" value="5"/>
> <input type="text" name="components[1].name" value="engine"/>
> <input type="text" name="components[1].qty" value="2"/>
> ....
> </form>
>
> If I submit the form, Struts won't be able to rebuild the Car array
> with its components.
>
> This is what I expect the html to be:
>
> <form ...>
> Standard
> <input type="text" name="cars[0].components[0].name" value="door"/>
> <input type="text" name="cars[0].components[0].qty" value="4"/>
> <input type="text" name="cars[0].components[1].name" value="engine"/>
> <input type="text" name="cars[0].components[1].qty" value="1"/>
> Superb
> <input type="text" name="cars[1].components[0].name" value="door"/>
> <input type="text" name="cars[1].components[0].qty" value="5"/>
> <input type="text" name="cars[1].components[1].name" value="engine"/>
> <input type="text" name="cars[1].components[1].qty" value="2"/>
> ....
> </form>
>
>
> How can I achieve that?
>
> Am I on the right path?
>
>
> Oscar
>
>
>
>
> --
> Oscar Guindzberg
> http://www.latbrain.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org