Hi,

I have a problem trying to create a multi row edit form which has to be able to dynamically decide which columns should be displayed for edit. My jsp uses the code below.

<logic:iterate name="applicationForm" property="familymembers" id="familymembers">
       <tr>
<logic:iterate name="applicationForm" property="familyItems" id="formItem">
               <td>
               <logic:notEmpty name="formItem">
                   <% InputItem inputItem = (InputItem)formItem; %>
<logic:equal name="formItem" property="type" value="text"> <html:text size="<%= inputItem.getSize() %>" readonly="<%= inputItem.isReadonly()%>" name="familymembers" property="<%= inputItem.getDataProperty() %>" indexed="true"/>
                   </logic:equal>
               </td>
         </logic:iterate>
      </td>
   </logic:iterate>

The outer iterate is the bean holding the data - in this case a list of family members - name, gender, date of birth. The inner iterate is the list of fields to be displayed for each, My problems is that when this is rendered as html - the index values generated use the index of the inner iterate not the outer one - so I get

<tr>
<td>
        <input type="text" name="familymembers[0].forename" value="">
</td>
<td>
        <input type="text" name="familymembers[1].surname" value="">
</td>
</tr>                     
<tr>
<td>
        <input type="text" name="familymembers[0].forename" value="">
</td>
<td>
        <input type="text" name="familymembers[1].surname" value="">
</td>
</tr>
        
whereas what I want is                                  
                                                
<tr>
<td>
        <input type="text" name="familymembers[0].forename" value="">
</td>
<td>
        <input type="text" name="familymembers[0].surname" value="">
</td>
</tr>                     
<tr>
<td>
        <input type="text" name="familymembers[0].forename" value="">
</td>
<td>
        <input type="text" name="familymembers[1].surname" value="">
</td>
</tr>

I have also tried using nested:iterate as well - in which case I get

<tr>
<td>
        <input type="text" name="applicationForm[0].familymembers[0].forename" 
value="">
</td>
<td>
        <input type="text" name="applicationForm[1].familymembers[0].surname" 
value="">
</td>
</tr>                     
<tr>
<td>
        <input type="text" name="applicationForm[0].familymembers[1].forename" 
value="">
</td>
<td>
        <input type="text" name="applicationForm[1].familymembers[1].surname" 
value="">
</td>
</tr>
                
so the familymembers index is now correct but I have an additionally 
applicationForm[0] that I don't need.

Basically what I want to achieve is that the inner loop is ignored for the 
purposes of generating the indexing for the html output - but can't figure out 
to achieve that without writing my own tag.

Can anyone help?

Thanks

Mike Manley

                        






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

Reply via email to