zoukankan      html  css  js  c++  java
  • jsp页面 ajax提交数组 到struts2的action

    最近工作用到提交表格中的数据到action(没有表单)。经过几番尝试之后确定可以用下面方法将jsp页面的js数组提交到action

    function submits(){
            var mainTable=document.getElementById("mainTable");
            var trs= mainTable.rows;
            var tr=null;
            var data=new Array();
            var flag=false;
            for(var i=1;i<trs.length;i+=2){
                tr=trs[i].cells;
                var d=new Array();
                for(var j=0;j<tr.length;j+=2){
                    if(tr[j].style.backgroundColor=="rgb(255, 255, 119)"){
                        if(!flag){
                            //行坐标(人员)
                            d.push(((i-1)/2));
                            //列坐标(房间)
                            d.push((j/2));
                            //数值(N/Y)
                            d.push(tr[j].innerHTML);
                            flag=true;
                        }else{
                            //列坐标(房间)
                            d.push((j/2));
                            //数值(N/Y)
                            d.push(tr[j].innerHTML);
                        }
                    }
                }
                if(d.length>0){
                    data.push(d);
                }
                flag=false;
            }
          //序列化数据 var params
    =$.param({'datas':data},true); $.ajax({ type:"POST", url:"accessControl_updateAccessControl.htm", data:params, dataType:'json', success:function(msg){ alert(msg); } }); }
    $.param({'datas':data},true);这个方法很重要   提交前需要序列化
    然后接下来就按照Struts2的特性 在action中写好属性 写好getter setter方法

        private List<Object[]> datas;
        
        public List<Object[]> getDatas() {
            return datas;
        }
        public void setDatas(List<Object[]> datas) {
            this.datas = datas;
        }

    之后就可以直接在ajax提交的url的方法中直接得到数据很方便

    //修改门禁信息表
        public String updateAccessControl() {
    //        System.out.println("过来了");
            List<EmployeeInfo> list=accessControlService.findAllDoorCheckDto();
            List<Room> roomList=accessControlService.findAllRoom();//当前数据库所有房间信息
            int pIndex=0;
            EmployeeInfo emp=null;
            int rIndex=0;
            String rStatus=null;
            Room room=null;
            for(Object[] data:datas){//遍历提交上来的每行数据
                System.out.println(Arrays.toString(data));
                if(data.length>0){
                    pIndex=(Integer) data[0];
                    emp=list.get(pIndex);
                    for(int i=1;i<data.length;i+=2){
                        rIndex=(Integer) data[i];
                        room=roomList.get(rIndex);
                        rStatus=(String) data[i+1];
                    }
                }
                
            }
            
            return NONE;
        }
  • 相关阅读:
    HDU 1698 Just a Hook (区间更新+延迟标记)
    HDU 1754 I Hate It 线段树
    HDU 1847 Good Luck in CET-4 Everybody! (sg函数)
    博弈汇总
    Codeforces cf 713A Sonya and Queries
    hihoCoder 1082 : 然而沼跃鱼早就看穿了一切
    hihoCoder 1298 : 数论五·欧拉函数
    hdu 5821 Ball
    hdu 5818 Joint Stacks(栈的模拟)
    hdu 5802 Windows 10
  • 原文地址:https://www.cnblogs.com/zhixw/p/6772826.html
Copyright © 2011-2022 走看看