注册 登录
编程论坛 J2EE论坛

struts+jsp如何实现批量提交

小程序员 发布于 2011-05-11 20:38, 3766 次点击
jsp中做一个form表单,一次提交十几个对象到action中。可是有问题。有谁会的教教我,我给你分,确实做过项目的懂的来。菜鸟懂一点的不要来打扰!!!
7 回复
#2
wzh5453946222011-05-11 22:05
说具体一点,看一下form表单和action类。。。。
#3
zlk2011-05-13 11:44
传多个Id到后台呗。后台执行批量的方法呗。
#4
wzh5453946222011-05-13 19:11
在form表单用同一个名字呗,在action中用数组接收呗。。。
#5
小程序员2011-05-13 21:03
回复 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行可填,即可输入三个学生信息,假如输入小于三个,后台报错。
#6
w1230123062011-05-15 09:18
action后可以接路径!
#7
小程序员2011-05-17 20:21
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存储进数据库
           }


#8
哈狄斯2011-05-30 16:50
楼上的大神,我觉得//可以用boolean类型来接收select值,因为你checkbox 没有写value值(当然也没有必要写),所以用Boolean类型的值更为恰当~~~
1