我用c:foreach遍历从后台得到3行4列的数据,并放到了文本框中 用户可以修改这些数据。因为遍历的所以文本框的name名字都是一样的,,现在有个问题 就是我要获取用户修改过这些文本框的值重新插入到数据库,把每行看做一记录,怎么样一条一条获取 ,

解决方案 »

  1.   

    对应的form中设置成String[],
    action就可以取了。
      

  2.   

    试试用String[]数组存入,在action中可以轻松地拿到!给点吧!
      

  3.   

    建议创建的时候吧ID也写到那一行里,每一行后面加个按钮“修改”,修改一行,按一次修改按钮就是。
    如果非要一次提交那么多的话,拼接字符串吧!修改过的ID都记录到页面,提交的时候去拼接内容,然后提交
      

  4.   


    <c:foreach var="bean" items="beans">
       <input type="text" dataBaseId="bean.id" value="bean.text" rawValue="bean.text" name="saveBean"/></c:foreach>
    function save(){
      var saveBeans=$("input").val();
      var destBeans=new Array();
      for(var i=0;i<saveBeans.length;i++){
          var saveBean=$(saveBeans[i]);
          if(saveBean.attr("rawValue") != saveBean.val() ){
                destBeans.push({
                       id:saveBean.attr("dataBaseId"),
                       text:saveBean.val(),
                     });   
           }
      }
     $.post("test.action",{'destBeans':destBeans})
    }用jquery 写的,换JS也行,也可以不到JS判断全部提交后台判断。 dataBaseId rawValue 都是自定义属性
      

  5.   

    为什么不在设置name的时候把ID或者序号加在name后面呢?
    比如
    <c:foreach var="bean" items="beans">    
    <input type="text"  value="${bean.text}"  name="name${list.id}"/>   </c:foreach> 
    或者:
    ]<c:foreach var="bean" items="beans" varStatus="status">    
    <input type="text"  value="${bean.text}"  name="name${status.index}"/>   </c:foreach> 
    这样你提交的时候就能一一对应了