• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Spring MVC前端与后端5种ajax交互方法【总结】

    前端ajax与后端Spring MVC控制器有以下五种数据交互方式。(前台使用了dhtmlxGrid,后端使用了fastjson)

    方式一 通过URL传参

    通过URL挂接参数,如/auth/getUser?userid='6'

    服务器端方法可编写为:getUser(String userid),也可新增其他参数如HttpSession, HttpServletRequest,HttpServletResponse,Mode,ModelAndView等。

    方式二 单值传参

    前台调用如:

    ajaxPost("/base/user/exchangeSort",{"id":rid,"otherid":otherid},function(data,status){
    
    xxxxxx
    
    xxxxxx
    
    });
    
    

    服务器端为:

    public String exchangeSort(String id, String otherid)

    方式三 对象传参

    前台调用如:

    var org={id:id};
    
    ajaxPost("/base/org/getOrgById", org,function(data,textStatus){
    
    xxxx
    
    xxxx
    
    });
    
    

    服务器端为:

    public Org getOrgById(Org org)

    方式四 对象序列化传参

    前台调用如:

    var ueser={id:rowId};
    
    var data=ajaxPost("/base/user/findById",{"userObj":JSON.stringify(user)},null);
    
    

    或者

    var ueser={ };//创建对象
    
    user["id"]=id;
    
    user["name"]=$("#name").val();
    
    user["dept"]={};//外键对象
    
    user["dept"]["id"]=$("#deptid").val();
    
    ajaxPost("/base/user/addUser",{"userObj":JSON.stringify(user)},function(data){xxxx;xxxxx;});
    
    

    服务器端为:

    @RequestMapping("/findById")
    
    @ResponseBody
    
    public UserInfo findById(String userObj) {
    
    //使用fastJSON
    
    UserInfo user = JSON.parseObject(userObj, UserInfo.class);
    
    user = (UserInfo) userService.findById(UserInfo.class, user.getId());
    
    return user;
    
    }
    
    

    方式五 列表传参

    前台代码如:

    var objList = new Array();
    
    grid.forEachRow(function(rId) {
    
    var index = grid.getRowIndex(rId);
    
    var obj = {};
    
    obj["id"] = rId;
    
    obj["user"] = {};
    
    obj["user"]["id"] = $("#userId").val();
    
    //不推荐这样的写法
    
    //obj["kinShip"] = grid.cells(rId, 1).getValue();
    
    //obj["name"] = grid.cells(rId, 2).getValue();
    
    obj["kinShip"]=grid.cells(rId,grid. getColIndexById ("columnName")).getValue();
    
    obj["name"]=grid.cells(rId,grid.getColIndexById("name")).getValue();
    
    if(grid.cells(rId, 3).getValue()!=null  grid.cells(rId, 3).getValue()!="") {
    
    var str = grid.cells(rId, 3).getValue().split("-");
    
    var day = parseFloat(str[2]);
    
    var month = parseFloat(str[1])-1;
    
    var year = parseInt(str[0]);
    
    var date=new Date();
    
    date.setFullYear(year, month, day);
    
    obj["birth"] = date;
    
    }else {
    
    obj["birth"] ="";
    
    }
    
    obj["politicalStatus"] = grid.cells(rId, 4).getValue();
    
    obj["workUnit"] = grid.cells(rId, 5).getValue();
    
    if (grid.cells(rId, 6).isChecked())
    
    obj["isContact"] ="1";
    
    else
    
    obj["isContact"] ="0";
    
    obj["phone"] = grid.cells(rId, 7).getValue();
    
    obj["remark"] = grid.cells(rId, 8).getValue();
    
    obj["sort"] = index;
    
    objList.push(obj);
    
    });
    
    
    ajaxPost("/base/user/addUpdateUserHomeList", {
    
    "userHomeList" : JSON.stringify(objList),
    
    "userId" : $("#userId").val()
    
    },function(data, status) {
    
    xxxxx
    
    });
    
    

    服务器端:

    @RequestMapping("/addUpdateUserHomeList")
    
    @ResponseBody
    
    public String addUpdateUserHomeList(String userHomeList, String userId) {
    
    List userHomes = JSON
    
    .parseArray(userHomeList, UserHome.class);//fastJSON
    
    if (userHomes != null  userHomes.size() > 0) {
    
    try {
    
    userService.addUpdateUserHomeList(userHomes, userId);
    
    } catch (Exception e) {
    
    e.printStackTrace();
    
    }
    
    }
    
    return "200";
    
    }
    
    

    附上ajaxPost代码:

    function ajaxPost(url,dataParam,callback){ 
    
    var retData=null; 
    
    $.ajax({ 
    
    type: "post", 
    
    url: url, 
    
    data: dataParam, 
    
    dataType: "json", 
    
    success: function (data,status) { 
    
    // alert(data); 
    
    retData=data; 
    
    if(callback!=nullcallback!=""callback!=undefined) 
    
    callback(data,status); 
    
    }, 
    
    error: function (err,err1,err2) { 
    
    alertMsg.error("调用方法发生异常:"+JSON.stringify(err)+"err1"+ JSON.stringify(err1)+"err2:"+JSON.stringify(err2)); 
    
    } 
    
    }); 
    
    return retData; 
    
    }
    

    以上这篇Spring MVC前端与后端5种ajax交互方法【总结】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • spring mvc 实现获取后端传递的值操作示例
    • laypage+SpringMVC实现后端分页
    • Spring MVC前后端的数据传输的实现方法
    • 轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
    • SpringMVC前端和后端数据交互总结
    • java web SpringMVC后端传json数据到前端页面实例代码
    • SpringMVC后端返回数据到前端代码示例
    上一篇:ajax+springmvc实现C与View之间的数据交流方法
    下一篇:Ajax校验是否重复的实现代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    Spring MVC前端与后端5种ajax交互方法【总结】 Spring,MVC,前端,与,后端,5种,