当前位置: 代码迷 >> Java Web开发 >> struts+jsp如何实现批量提交
  详细解决方案

struts+jsp如何实现批量提交

热度:441   发布时间:2011-05-11 20:38:49.0
struts+jsp如何实现批量提交
jsp中做一个form表单,一次提交十几个对象到action中。可是有问题。有谁会的教教我,我给你分,确实做过项目的懂的来。菜鸟懂一点的不要来打扰!!!
搜索更多相关主题的帖子: 表单  确实  action  如何  

----------------解决方案--------------------------------------------------------
说具体一点,看一下form表单和action类。。。。

----------------解决方案--------------------------------------------------------
传多个Id到后台呗。后台执行批量的方法呗。
----------------解决方案--------------------------------------------------------
在form表单用同一个名字呗,在action中用数组接收呗。。。
----------------解决方案--------------------------------------------------------
回复 2楼 wzh545394622
jsp:
<form action="studentsave" method="post">
       <table border="1" bordercolor="#00FF00" cellpadding="0" cellspacing="0" align="center">
           <tr>
                <td>选中</td>
                <td>学号</td>
                <td>名字</td>
                <td>性别</td>
           </tr>
           <tr>
                <td><input type="checkbox" /></td>
                <td><input  type="text" name="list[0].no" /></td>
                <td><input type="text" name="list[0].name" /></td>
                <td>
                <select name="list[0].sex">
                    <option selected="selected">男</option>
                    <option>女</option>
                </select>
                </td>
            </tr>
            <tr>
                <td><input type="checkbox"  /></td>
                <td><input  type="text"  name="list[1].no" /></td>
                <td><input type="text" name="list[1].name"/></td>
                <td>
                <select name="list[1].sex">
                    <option selected="selected">男</option>
                    <option>女</option>
                </select>
                </td>
            </tr>
            <tr>
                <td><input type="checkbox"  /></td>
                <td><input  type="text" name="list[2].no"/></td>
                <td><input type="text"  name="list[2].name"/></td>
                <td>
                <select name="list[2].sex">
                    <option selected="selected">男</option>
                    <option>女</option>
                </select>
                </td>
            </tr>
            <tr>
            <td colspan="2" align="right"><input type="submit" value="提交"/></td>
            <td colspan="2" align="left"><input type="reset" value="重置" /></td>
            </tr>
            
       </table>
       </form>

action:
public class StudentAction extends ActionSupport {
    //用list集合接收前台的数据
    List<Student> list=null;
    //批量存储学生对象
    public String listsave(){
        //遍历判断是否为空,如果为空,删除该元素
        Iterator iter=list.iterator();
        while(iter.hasNext()){
            Student student=(Student)iter.next();
            if(student.getSno()==0){   
            iter.remove();
            }
         }
        StudentDao dao=new StudentDao();
        boolean isright=dao.saveManyStudent(list);
        if(isright){return SUCCESS;}
        return ERROR;
    }
   省略set、get方法
    }
----------------------------
前台有3行可填,即可输入三个学生信息,假如输入小于三个,后台报错。
----------------解决方案--------------------------------------------------------
action后可以接路径!
本帖最近评分记录
  • 柏新星 积分 +1 我很赞同 2011-5-16 21:25

楼上,楼下的一定要幸福开心哦!
2011-05-15 01:18:53
小程序员

等 级:论坛游民
帖 子:41
专家分:16
注 册:2010-3-8
7
  得分:0 
4楼说出了答案,不过他没给出具体操作步骤,所以不给满分他。我分享一下具体步骤:
form action="studentsave" method="post">
       <table border="1" bordercolor="#00FF00" cellpadding="0" cellspacing="0" align="center">
           <tr>
                <td>选中</td>
                <td>学号</td>
                <td>名字</td>
                <td>性别</td>
           </tr>
           <tr>
                <td><input type="checkbox" name="select" /></td>     //所有checkbox的name值select。后台用String[] select接收所以select的值
                <td><input  type="text" name="no" /></td>           //同理名字,性别一栏的name的值统一用no、name
                <td><input type="text" name="name" /></td>
                <td>
                <select name="sex">
                    <option selected="selected">男</option>
                    <option>女</option>
                </select>
                </td>
            </tr>
            <tr>
                <td><input type="checkbox" name="selcet" /></td>
                <td><input  type="text"  name="no" /></td>
                <td><input type="text" name="name"/></td>
                <td>
                <select name="sex">
                    <option selected="selected">男</option>
                    <option>女</option>
                </select>
                </td>
            </tr>
              <tr>
            <td colspan="2" align="right"><input type="submit" value="提交"/></td>
            <td colspan="2" align="left"><input type="reset" value="重置" /></td>
            </tr>   
       </table>
       </form>
action关键代码
    String[] select;
    String[] no;
    String[] name;
    String[] sex;
    //批量存储对象
    public String listsave(){
        List<Student> list=new ArrayList<Student>();;
        for(int i=0;i<select.length;i++){
            if(!(select[i]=="")){   
            Student stu=new Student();
            stu.setSname(name[i]);
            stu.setSno(Integer.parseInt(no[i]));
            stu.setSsex(sex[i]);
            list.add(stu);
                        }
        }
          //此时,list就把学生对象接收到了。再把list存储进数据库
           }



----------------解决方案--------------------------------------------------------
楼上的大神,我觉得//可以用boolean类型来接收select值,因为你checkbox 没有写value值(当然也没有必要写),所以用Boolean类型的值更为恰当~~~
----------------解决方案--------------------------------------------------------
  相关解决方案