jsp - Collect and save submitted values of multiple dynamic HTML inputs back in servlet -


i able display arraylist of beans in jsp form using jstl looping through list , outputting bean properties in html input tag.

<c:foreach items="${listofbeans}" var="bean">   <tr>     <td><input type="text" id="foo" value="${bean.foo}"/></td>       <td><input type="text" id="bar" value="${bean.bar}"/></td>                        </tr> </c:foreach> 

how code jsp when page submits updated values in appropriate item of the arraylist?

given simplified model:

public class item {     private long id;     private string foo;     private string bar;     // ... } 

here's how can provided ${items} list<item>:

<c:foreach items="${items}" var="item">     <tr>         <td>             <input type="hidden" name="id" value="${item.id}" />             <input name="foo_${item.id}" value="${fn:escapexml(item.foo)}" />         </td>           <td>             <input name="bar_${item.id}" value="${fn:escapexml(item.bar)}" />         </td>     </tr> </c:foreach> 

(note importance of fn:escapexml() xss attack prevention)

so, basically, need set item's unique identifier hidden input field in each row shown in above snippet:

<input type="hidden" name="id" value="${item.id}" /> 

and should in turn use id suffix of name of input fields in same row such as:

<input name="foo_${item.id}" ... /> 

in servlet, can collect values of <input type="hidden" name="id" ...> rows request.getparametervalues(). loop on , grab individual inputs id.

for (string id : request.getparametervalues("id")) {     string foo = request.getparameter("foo_" + id);     string bar = request.getparameter("bar_" + id);     // ... } 

you can without id , grab inputs name array name="foo" , request.getparametervalues("foo"), ordering of request parameters not under control. html forms send in order, enduser can manipulate order.

no need javascript mess here.

see also:


Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

c++ - Clear the memory after returning a vector in a function -

erlang - Saving a digraph to mnesia is hindered because of its side-effects -