Hi, I am using the <c:forEach> to iterate over a list and create some dynamic drop boxes on consecutive rows. For example: On first row, I want to solicit "Batchelors" related information from the student. In the second row, I want to solicit "Masters" related information. So the value XXX should be something like "Batchelors", XXXDegreeList should be BatchelorsDegreeList, XXXCollegeList should be BatchelorsCollegeList for the first row. Similarly these values should morph to "Masters", " MastersDegreeList" and "MastersCollegeList" in the second row. What is the cutest and simplest way of achieving this. I do not like to use scriptlets if possible. Thanks in Advance. Raghu <c:forEach var="educationDetails" items="${ studentEnquiryForm.map.educationDetails}" > <tr> <html:hidden indexed="true" name="educationDetails" property="type" value="XXX"/> <td> <html:select indexed="true" name="educationDetails" property="degree.id<http://degree.id>" size="${selectBoxSize}"> <html:optionsCollection name="XXXDegreeList" value="id" label="name"/> </html:select> </td> <td> <html:select indexed="true" name="educationDetails" property="college.id<http://college.id>" size="${selectBoxSize}"> <html:optionsCollection name="XXXCollegeList" value="id" label="name"/> </html:select> </td> <td> <html:text indexed="true" name="educationDetails" property="completionDate"/></td> <td> <html:text indexed="true" name="educationDetails" property="mainSubjects"/></td> <td> <html:text indexed="true" name="educationDetails" property="marks"/></td> </tr> </c:forEach>