ajax与springmvc传参方式总结

在使用ajax与springmvc进行传参的过程中发现如下特点,特总结如下:

1、传简单的一个或两个参数

$.ajax({

type:'post',

url:"/del",

data:{id:stuId},

success:function(data){

if(data=="success"){

infoTip("删除成功",2000);

}

}

});

后台用变量接收

@RequestMapping(value="del")

@ResponseBody

public String del(String id){

return service.del(id);

}

service.del(id)返回的是字符串类型的,因为ajax中没有加参数dataType:'json',所以前台接收的是字符串success

注:data中的id与后台接收的参数的名称必须一致。

后台用对象接收’

@RequestMapping(value="del")

@ResponseBody

public String del(Student student){

return service.del(student);

}

注:data中的id与后台接收的对象中的属相名称必须一致。

2、传递数组:一个或多个,有下面两种方式。若传递的是数组对象,需要用第二种方式,否则失败。

前台

$.ajax({

type:'post',

data:{"newArray":newArray,

"delArray":delArray

},

traditional:true,//这个是最重要的

success:function(data){

if(data=="success"){

infoTip("删除成功",2000);

}

}

});

后台

@RequestMapping(value="del")

@ResponseBody

public String del(String[] newArray,String[] delArray){

return "";

}


如果不加traditional,通过 观察浏览器中发送的请求,可以发现参数如下:

newArray[]:

delArray[]:

可以看到,参数的名字为newArray[]而不是我们所定义的newArray,也就是说,当传递数组时,会在我们的数组名称自动加上”[]”,所以后台接不到。

加上traditional后,就对了。

前台

varitemsArray=[];

$.ajax({

type:'post',

contentType:'application/json;charset=UTF-8',//解决415错误

data:JSON.stringify(itemsArray),2000);

}

}

});

后台

@RequestMapping(value="del")

@ResponseBody

public String del(@RequestBody String[]newArray){

return "";

}

注: 只能传一个数组。

相关文章

SpringMVC学习记录 注意:以下内容是学习 北京动力节点 的SpringMVC视频后所记录的笔记、源码以及个人的...
SpringMVC拦截器
SpringMVC学习记录 注意:以下内容是学习 北京动力节点 的SpringMVC视频后所记录的笔记、源码以及个人的...
SpringMVC流程及源码分析 前言 ​	学了一遍SpringMVC以后,想着做一个总结,复习一下。复习写下...
1、添加命名空间和xsd约束 2、在 application.xml文件中开启注解 3、配置扫描任务扫描包 4、demo
SpringMVC 概述 Spring 为展现层提供的基于 MVC 设计理念的优秀的 Web 框架,是目前最主流的 MVC 框架之...