【前台 ajax】web项目前台传递数组给后台 两种方式

项目使用maven    springMVC   

有需求 将前台的数组   在ajax中 送给后台

方式1:

前台代码:【注意:ajax中的属性---traditional:true,  】

    如果Post是string数组或者int数组,则ajax中traditional: true,

    如果Post是对象数组,则ajax中traditional: false,否则对象将为空

 1 //首先 是数组数据的封装
 2 $.each(checkedNodes,function(i,node){
 3                     nodeArr.push(node.id);
 4                 });
 5 //ajax中  需要设置 traditional:true,
 6                 if(roleName !="" ){
 7                     $.ajax({url:"roleAdd.htmls",
 8                             dataType:'json',
 9                             type:"post",
10                             traditional:true,
11                             data:{
12                                 "roleName" : roleName,
13                                 "roleCre" : roleCre,
14                                 "nodeArr" : nodeArr,
15                             },
16                             success:function(data){
17                                 if(data != null){
18                                     parent.page.pageSet(); 
19                                 }    
20                                 parent.layer.close(parent.indexRoleAdd); //获取到layer的弹出窗 关闭它  indexRoleAdd
21                     }});
22                 }
View Code

后台代码:【使用String[] nodeArr数组接收即可】

 1 @RequestMapping("/roleAdd")
 2     @ResponseBody
 3     public Role roleAdd(String roleName,String roleCre,HttpServletRequest request, String[] nodeArr){
 4         
 5         Role role = new Role();
 6         role.setRoleId(UUID.randomUUID().toString());
 7         role.setRoleName(roleName);
 8         role.setRoleCre(roleCre);
 9         //创建信息
10         HttpSession session = request.getSession();
11         User user = (User) session.getAttribute("user");
12         role.setTransPerson(user.getUserId());
13         role.setCreateDate(new Timestamp(System.currentTimeMillis()));
14 //        roleService.save(role);
15 //        roleService.flush();
16         return role;
17     }
View Code

 

 

 

 

 

方式2:

前台代码:

 1 $.each(checkedNodes,function(i,node){
 2                     nodeArr.push(node.id);
 3                 });
 4 //数组数据 封装完成后转化为JSON字符串
 5                 var nodes = JSON.stringify(nodeArr);
 6                 
 7                 if(roleName !="" ){
 8                     $.ajax({url:"roleAdd.htmls",
 9                             dataType:'json',
10                             type:"post",
11                             data:{
12                                 "roleName" : roleName,
13                                 "roleCre" : roleCre,
14                                 "nodeArr" : nodes,
15                             },
16                             success:function(data){
17                                 if(data != null){
18                                     parent.page.pageSet(); 
19                                 }    
20                                 parent.layer.close(parent.indexRoleAdd); //获取到layer的弹出窗 关闭它  indexRoleAdd
21                     }});
22                 }
View Code

后台代码:【String nodeArr接收数据即可】

 1     /**
 2      * 进行添加角色的操作
 3      * @return
 4      */
 5     @RequestMapping("/roleAdd")
 6     @ResponseBody
 7     public Role roleAdd(String roleName,String roleCre,HttpServletRequest request, String nodeArr){
 8         
 9         Role role = new Role();
10         role.setRoleId(UUID.randomUUID().toString());
11         role.setRoleName(roleName);
12         role.setRoleCre(roleCre);
13         //创建信息
14         HttpSession session = request.getSession();
15         User user = (User) session.getAttribute("user");
16         role.setTransPerson(user.getUserId());
17         role.setCreateDate(new Timestamp(System.currentTimeMillis()));
18 //        roleService.save(role);
19 //        roleService.flush();
20         return role;
21     }
View Code

只不过 这样接收到的数组是字符串形式的  需要自己在后台进行二次处理 才能拿到 数组内的数据

 

 

 

 

 

这两种方式都可以 实现!!!!!

posted @ 2016-11-21 10:12  Angel挤一挤  阅读(10961)  评论(0编辑  收藏  举报