Ajax传递复杂参数到服务器端的方法-阿里云开发者社区

开发者社区> 沉默王二> 正文

Ajax传递复杂参数到服务器端的方法

简介: Ajax传递复杂参数到服务器端的方法
+关注继续查看

我们大概都知道,使用Ajax传递简单参数到服务器端(SpringMVC)的方法,如下:


$.ajax({
    type : "POST",
    url : CONFIG.mec_otm.order + "/cancel",
    data : {
        "results" : "cmower",
    },
    dataType : "json",
    success : function(json) {
    }
});


但如果想要传递一个像List<SelfOrder>这样的复杂对象(一个 java.util.List 中放了自定义对象com.cmower.database.entity.selforder.SelfOrder)呢?


怎么办呢?

想一想,可以在Ajax传递参数的时候把复杂对象转成JSON字符串,然后在服务器端获取JSON字符串后再转成List<SelfOrder>。

好像有道理,是吧?


那具体怎么做呢?

先来看客户端代码,我们假设有一个datatables的Table,支持多选


// 获取datatables选择的项目,支持多选,因此获取的结果为一个数组
var _getSelects = function() {
    var results = [];
    self_order_table.rows({
        selected : true
    }).data().each(function(selfOrder, i) {
        var result = {};
        result["scode"] = selfOrder.scode;
        result["id"] = selfOrder.id;
        results[i] = result;
    });
    return results;
};
$("#orderBtn").click(function(event) {
    var results = _getSelects();
    $.ajax({
        type : "POST",
        url : CONFIG.mec_otm.order + "/cancel",
        data : {
            "results" : JSON.stringify(results),//转成json字符串
        },
        dataType : "json",
        success : function(json) {
    });
    return false;
});


然后服务器端获取的方法也很简单:


@RequestMapping("cancel")
public ModelAndView cancel() {
    String jsonStr = getPara("results");
    if (StringUtils.isEmpty(jsonStr)) {
        throw new OrderException("请选择要撤单的项目");
    }
    List<SelfOrder> list = JSON.parseArray(jsonStr, SelfOrder.class);
}


可以利用fastjson(JSON.parseArray)对json字符串转成目标的复杂对象。


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SQL SERVER使用ODBC 驱动建立的链接服务器调用存储过程时参数不能为NULL值
原文:SQL SERVER使用ODBC 驱动建立的链接服务器调用存储过程时参数不能为NULL值     我们知道SQL SERVER建立链接服务器(Linked Server)可以选择的驱动程序非常多,最近发现使用ODBC 的 Microsoft OLE DB 驱动程序建立的链接服务器(Linked Server), 调用存储过程过程时,参数不能为NULL值。
729 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
8606 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10436 0
性能测试 -- 服务器参数调整
1)cpu负载均衡 安装: yum install irqbalance 使用: service irqbalance {start|stop|status|restart} 2)ulimit -u 3)查看操作系统版本 cat /proc/version cat /etc/issue ...
629 0
web服务器压测内核tcp参数调整
web服务器压测内核tcp参数调整 下面是对内核参数的调整: echo "2048 64512" > /proc/sys/net/ipv4/ip_local_port_range echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle ...
556 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
6612 0
+关注
沉默王二
微信搜索「沉默王二」,回复关键字「00」获取硬核计算机基础资料。
1084
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载