【前台 ajax】web项目前台传递数组给后台 两种方式
项目使用maven springMVC
有需求 将前台的数组 在ajax中 送给后台
方式1:
前台代码:【注意:ajax中的属性---traditional:true, 】
如果Post是string数组或者int数组,则ajax中traditional: true,
如果Post是对象数组,则ajax中traditional: false,否则对象将为空
//首先 是数组数据的封装
$.each(checkedNodes,function(i,node){
nodeArr.push(node.id);
});
//ajax中 需要设置 traditional:true,
if(roleName !="" ){
$.ajax({url:"roleAdd.htmls",
dataType:'json',
type:"post",
traditional:true,
data:{
"roleName" : roleName,
"roleCre" : roleCre,
"nodeArr" : nodeArr,
},
success:function(data){
if(data != null){
parent.page.pageSet();
}
parent.layer.close(parent.indexRoleAdd); //获取到layer的弹出窗 关闭它 indexRoleAdd
}});
}
后台代码:【使用String[] nodeArr数组接收即可】
 @RequestMapping("/roleAdd")
     @ResponseBody
     public Role roleAdd(String roleName,String roleCre,HttpServletRequest request, String[] nodeArr){
         Role role = new Role();
         role.setRoleId(UUID.randomUUID().toString());
         role.setRoleName(roleName);
         role.setRoleCre(roleCre);
         //创建信息
         HttpSession session = request.getSession();
         User user = (User) session.getAttribute("user");
         role.setTransPerson(user.getUserId());
         role.setCreateDate(new Timestamp(System.currentTimeMillis()));
 //        roleService.save(role);
 //        roleService.flush();
         return role;
     }

方式2:
前台代码:
 $.each(checkedNodes,function(i,node){
                     nodeArr.push(node.id);
                 });
 //数组数据 封装完成后转化为JSON字符串
                 var nodes = JSON.stringify(nodeArr);
                 if(roleName !="" ){
                     $.ajax({url:"roleAdd.htmls",
                             dataType:'json',
                             type:"post",
                             data:{
                                 "roleName" : roleName,
                                 "roleCre" : roleCre,
                                 "nodeArr" : nodes,
                             },
                             success:function(data){
                                 if(data != null){
                                     parent.page.pageSet();
                                 }
                                 parent.layer.close(parent.indexRoleAdd); //获取到layer的弹出窗 关闭它  indexRoleAdd
                     }});
                 }
后台代码:【String nodeArr接收数据即可】
/**
* 进行添加角色的操作
* @return
*/
@RequestMapping("/roleAdd")
@ResponseBody
public Role roleAdd(String roleName,String roleCre,HttpServletRequest request, String nodeArr){ Role role = new Role();
role.setRoleId(UUID.randomUUID().toString());
role.setRoleName(roleName);
role.setRoleCre(roleCre);
//创建信息
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
role.setTransPerson(user.getUserId());
role.setCreateDate(new Timestamp(System.currentTimeMillis()));
// roleService.save(role);
// roleService.flush();
return role;
}
只不过 这样接收到的数组是字符串形式的 需要自己在后台进行二次处理 才能拿到 数组内的数据

这两种方式都可以 实现!!!!!
【前台 ajax】web项目前台传递数组给后台 两种方式的更多相关文章
- Restful传递数组参数的两种方式
		第一种,直接传递数组 js直接传递数组 var data = ["123","456"];that.loadDictionarys(data).subscrib ... 
- web.config文件中配置数据库连接的两种方式
		web.config文件中配置数据库连接的两种方式 标签: 数据库webconfig 2015-04-28 18:18 31590人阅读 评论(1)收藏举报 分类: 数据库(74) 在网站开发 ... 
- java中数组复制的两种方式
		在java中数组复制有两种方式: 一:System.arraycopy(原数组,开始copy的下标,存放copy内容的数组,开始存放的下标,需要copy的长度); 这个方法需要先创建一个空的存放cop ... 
- C++ 数组遍历的两种方式
		C++ 数组遍历的两种方式: #include <iostream> using namespace std; int main() { // 一维数组 ] = {, , , , }; / ... 
- 传递引用类型参数的两种方式(转自 MSDN)
		引用类型的变量不直接包含其数据:它包含的是对其数据的引用.当通过值传递引用类型的参数时,有可能更改引用所指向的数据,如某类成员的值(更改属性的值),但是无法更改引用本身的值:也就是说,不能使用相同的引 ... 
- Eclipse项目中引用第三方jar包时将项目打包成jar文件的两种方式
		转载自:http://www.cnblogs.com/lanxuezaipiao/p/3291641.html 方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFES ... 
- ASP.NET Web API接受AngualrJS的QueryString的两种方式
		ASP.NET Web API如何接受来自AngualrJS的QueryString呢?本篇体验两种方式. 第一种方式:http://localhost:49705/api/products?sear ... 
- mysql存储过程中遍历数组字符串的两种方式
		第一种:多次使用substring_index()的方法 DELIMITER $$ DROP PROCEDURE IF EXISTS `array`$$ CREATE PROCEDURE `arra ... 
- spring boot项目获取application配置文件参数的两种方式
		前言:了解过spring boot这个技术的,应该知道spring boot的核心配置文件application.properties,当然也可以通过注解自定义配置文件**.properties的信息 ... 
随机推荐
- delphi控件属性大全-详解-简介
			http://blog.csdn.net/u011096030/article/details/18716713 button 组件: CAPTION 属性 :用于在按钮上显示文本内容 Cancel ... 
- MST:Out of Hay(POJ 2395)
			缺乏粮草 题目大意:一群牛要修建一些通道,到各个农场距离总和要最小,求这些通道的最大值 水题了,一个Kruskal搞定 #include <iostream> #include <f ... 
- lazyload
			<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ... 
- [SQL Server]如何快速查找使用了某个字段的所有存储过程
			[SQL Server]如何快速查找使用了某个字段的所有存储过程 当一个系统中使用了很多的表,并且存在大量的存储过程,当数据库中的某个表删除了某个字段,那么相应的存储过程也需要改动,但是我 ... 
- October 6th 2016 Week 41st Thursday
			The outer world you see is a reflection of your inner self. 你拥有什么样的内心,你就会看到什么样的世界. And we eventually ... 
- express响应前端ajax请求
			后端其实并不需要知道前端发起的请求是不是ajax,后端只需要响应请求即可.例子: 前端这样写: $('button').on('click', function(event) { event.prev ... 
- Genesis不能运行Perl编译后的脚本
			我们经常会遇到Genesis2000中C-shell的脚本不能正常运行的问题,而同样的程序在其它电脑上又可以正常运行,如果你能看看Genesis后台窗口,也就是后面那个黑乎乎的窗口(所谓的小DOS窗口 ... 
- android app 内部文件路径
			public class MainActivity extends Activity { final String FILE_NAME = "crazyit.bin"; @Over ... 
- 素数环(dfs+回溯)
			题目描述: 输入正整数n,把整数1,2...n组成一个环,使得相邻两个数和为素数.输出时从整数1开始逆时针排列并且不能重复: 例样输入: 6 例样输出: 1 4 3 2 5 6 1 6 5 2 3 4 ... 
- Struts2拦截器之ModelDrivenInterceptor
			叙述套路: 1.这是个啥东西,它是干嘛用的? 2.我知道它能干啥了,那它咋个用呢? 3.它能跑起来了,但是它是咋跑起来的是啥原理呢? 一.ModelDriven是个啥?他能做什么? 从前端页面到后端的 ... 
