I think this might work:

<%@ taglib prefix="html"   uri="http://jakarta.apache.org/struts/tags-html"; %>
<%@ taglib prefix="nested" uri="http://jakarta.apache.org/struts/tags-nested"; %>
...
<%-- assuming ItemList is the form for this action --%>
<html:form action="...">
  <nested:iterate property="itemList">
    <tr>
      <nested:iterate property="prices">
        <td>
          <nested:text property="price"/>
        </td>
      </nested:iterate>
    </tr>
  </nested:iterate>
</html:form>

Quoting "Slattery, Tim - BLS" <[EMAIL PROTECTED]>:

> Now that I understand my problem a little better, maybe I can explain it a
> little better.
> 
> My form bean, named ItemList, contains a collection of objects named
> itemList. Each member of itemList contains a collection of objects named
> prices. Each member of prices contains a string named price, which I want
> to
> display and collect.
> 
> So I wrote this:
> 
> <c:forEach items="${ItemList.itemList}" var="itemList">
>   <tr>
>        <c:forEach items="${itemList}" var="prices">
>           <td>
>               <html-el:text name="prices" property="price" indexed="true"/>
>           </td>
>         </c:forEach>
>   </tr>
> </c:forEach>
> 
> 
> This worked fine for displaying the prices, but would not submit properly.
> It turned out that each text item got a name property of "prices[n].price",
> and Struts could not properly build the bean with this information. Since I
> knew that the "prices" collection always had exactly five members, I coded
> this:
> 
> <c:forEach items="${ItemList.itemList}" var="itemList">
>   <tr>
>         <td><html-el:text name="itemList" property="prices[0].price"
> indexed="true"/></td>
>         <td><html-el:text name="itemList" property="prices[1].price"
> indexed="true"/></td>
>         <td><html-el:text name="itemList" property="prices[2].price"
> indexed="true"/></td>
>         <td><html-el:text name="itemList" property="prices[3].price"
> indexed="true"/></td>
>         <td><html-el:text name="itemList" property="prices[4].price"
> indexed="true"/></td>
>         </td>
>   </tr>
> </c:forEach>
> 
> Now each text item has a name of the form "itemList[n].prices[n].price".
> Struts can handle this on submission and it works well.
> 
> But it only works because I know there are always exactly five prices. Is
> there a way to handle this with nested loops that will work regardless of
> the size of the array?
> 
> --
> Tim Slattery
> [EMAIL PROTECTED]

-- 
Kris Schneider <mailto:[EMAIL PROTECTED]>
D.O.Tech       <http://www.dotech.com/>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to