1

I would like to ask how to retrieve the values of the same name in a jsp form inside a loop to the Action class in struts without using the request.getParameterValues("screenName") when I click the SAVE button using the ACtionForm.

Here is the sample jsp code that I would like to retrieve the name "screenName" from the inside the loop:

           <form action="EditScreeningServlet" method="post">
                <input type = "hidden" name ="applicantNumber" value="${infoObj.applicantNumber}"  >
                <table>
                    <c:forEach var="screen" items="${screenList}">
                        <input type = "hidden" name ="screenId" value="${screen.screenId}"  >
                       <tr>
                           <td>Screen Type: &nbsp</td>       <td>*<input type="text" value="${screen.screenName}" name="screenName" readonly ="true">*</td>
                       </tr>
                       <tr>
                           <td>Date: </td>                   <td><input type="text" value="${screen.screenDate}" name="screenDate" class="date"></td>
                       </tr>
                       <tr> 
                           <td>Result: </td>               
                           <td>
                                <select name = screenResult> 
                                    <option value="Pass" ${screen.screenResult == 'Pass' ? 'selected' : ''}>Pass</option>
                                    <option value="Fail" ${screen.screenResult == 'Fail' ? 'selected' : ''}>Fail</option>
                                    <option value="" ${screen.screenResult == '' ? 'selected' : ''}></option>
                                </select>   
                           </td>
                       </tr>
                        <tr><td>&nbsp</td><td> &nbsp</td></tr>


                    </c:forEach>
                </table>

                <input type="submit" class="saveButton" value="SAVE">
            </form>
mr. yoso
  • 31
  • 1
  • 4

1 Answers1

0

in <form> you can not get as array of input element but you can.

<c:forEach var="screen" varStatus="loopStatus" items="${screenList}">
                        <input type = "hidden" name ="screenId" value="${screen.screenId}"  >
                       <tr>
                           <td>Screen Type: </td>
                           <td>*<input type="text" value="${screen.screenName}" name="screenName${loopStatus.count}" readonly ="true">*</td>
                       </tr>
</c:forEach>

OR you can use ID to bind with input text element

<c:forEach var="screen" varStatus="loopStatus" items="${screenList}">
  <tr>
    <td>Screen Type: </td>
    <td>*<input type="text" value="${screen.screenName}" name="screenName${screen.screenId}" readonly ="true">*</td>
  </tr>
</c:forEach>
Ravi Parekh
  • 5,253
  • 9
  • 46
  • 58