springmvc 中的Ajax中各種傳參方式(希望可以幫到大家)
- 傳遞普通字串
前臺:
function shuzuTest2(){
$.ajax({
type:"POST",
url:"<%=basePath %>saveUser2",
dataType:"json",
contentType:"application/json", // 指定這個協議很重要
data:{aa:"ddd"}, //只有這一個引數,json格式,後臺解析後可以直接用
success:function(data){
alert(
}
});
}
Controller:
@RequestMapping(value = "saveUser2", method = {RequestMethod.POST })
@ResponseBody
public void saveu2(@RequestBody String aa ){
System.out.println("aa"+aa) ; // 返回字串
}
2.傳遞普通型別的陣列
前臺:
function shuzuTest(){
alert("11"
var user1 = {
username : 'zs',
password : '123'
};
var user2 = {
username : 'lisi',
password : '234'
};
var person = {
name : 'zhaoliu',
password : '345'
};
var user = [];
user.push(user1);
user.push(user2);
user.push(person);
var userJson = JSON.stringify(user);
$.ajax({
type:"POST",
url:"<%=basePath %>saveUser",
dataType:"json",
contentType:"application/json", // 指定這個協議很重要
data:userJson, //只有這一個引數,json格式,後臺解析為實體,後臺可以直接用
success:function(data){
alert("響應成功")
}
});
}
Controller:
@RequestMapping(value = "saveUser", method = {RequestMethod.POST })
@ResponseBody
public String saveu(@RequestBody List<Object> list){
for(int i = 0 ; i <list.size();i++){
Object obj = list.get(i);
System.out.println(obj);
}
return "success";
}
3.組傳遞一個物件(傳遞的引數必須與實力類中的屬性名相同)
前臺: $(function(){
$("#idCard").blur(function() {
var cardNo = $("#idCard").val();
var data={idCard:cardNo};
/* 後臺使用@RequestBody 註解,則必須使用JSon字串格式傳值*/
var args=JSON.stringify(data);
$.ajax({
type:"post",
url:"<%=basePath%>user/checkIdCard",
contentType:'application/json;charset=utf-8',
data:args,
success:function (data) {
if(data) {
$("#cardError").text(data);
}else{
//不做任何操作
}
},
error:function(){
alert("request失敗");
}
});
});
});
Controller:
@RequestMapping(value="/checkIdCard",method={RequestMethod.POST,RequestMethod.GET}, produces = "text/html; charset=utf-8")
public @ResponseBody String checkExit( @RequestBody UserInfoEx EX) {
System.out.println("身份證號為"+EX.getIdCard());
UserInfoEx info;
try {
info = userservice.selectByCardID(EX.getIdCard());
if(info!=null){
System.out.println("有");
return "已存在該使用者";
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
4.傳遞一個數組,Controller用陣列接收
前臺:
function shuzuTest3(){
alert("11");
var saveDataAry=[];
var data1={"name":"test","price":"gz"};
var data2={"name":"ququ","price":"gr"};
saveDataAry.push(data1);
saveDataAry.push(data2);
$.ajax({
type:"POST",
url:"<%=basePath %>saveUser3",
dataType:"json",
contentType:"application/json", // 指定這個協議很重要
data:JSON.stringify(saveDataAry), //只有這一個引數,json格式,後臺解析為實體,後臺可以直接用
success:function(data){
alert("響應成功")
}
});
}
Controller:
@RequestMapping(value = "saveUser3", method = {RequestMethod.POST })
@ResponseBody
public void saveu3( @RequestBody CommodityEntity [] users ){
System.out.println(users[0].getName()+users[0].getPrice()) ; // 此時的user是實體bean
System.out.println(users[1].getName()+users[1].getPrice());
}
5.傳遞一個數組,Controller用List接收
Controller:同上
後臺: @RequestMapping(value = "saveUser4", method = {RequestMethod.POST })
@ResponseBody
public void saveu4( @RequestBody List<CommodityEntity> users ){
for (CommodityEntity comm : users) {
System.out.println(comm.getName()+comm.getPrice());
}
}