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字符串转成目标的复杂对象。


相关文章
|
1月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
48 3
|
1月前
|
监控 PHP Apache
优化 PHP-FPM 参数配置:实现服务器性能提升
优化PHP-FPM的参数配置可以显著提高服务器的性能和稳定性。通过合理设置 `pm.max_children`、`pm.start_servers`、`pm.min_spare_servers`、`pm.max_spare_servers`和 `pm.max_requests`等参数,并结合监控和调优措施,可以有效应对高并发和负载波动,确保Web应用程序的高效运行。希望本文提供的优化建议和配置示例能够帮助您实现服务器性能的提升。
72 3
|
2月前
|
JSON JavaScript 前端开发
《进阶篇第6章:vue中的ajax》包括回顾发送ajax请求方式、vue-cli脚手架配置代理服务器、vue-resource
《进阶篇第6章:vue中的ajax》包括回顾发送ajax请求方式、vue-cli脚手架配置代理服务器、vue-resource
71 22
|
2月前
|
前端开发 JavaScript Java
第6章:Vue中的ajax(包含:回顾发送ajax请求方式、vue-cli脚手架配置代理服务器)
第6章:Vue中的ajax(包含:回顾发送ajax请求方式、vue-cli脚手架配置代理服务器)
94 4
|
2月前
|
弹性计算 开发框架 .NET
阿里云服务器购买教程及云服务器地域、实例、操作系统、带宽等参数选择指南
对于初次购买阿里云服务器的用户来说,想使用阿里云服务器搭建网站或者运行APP、小程序等项目,第一步就是要先购买阿里云服务器,下面小编以图文形式给大家介绍一下阿里云服务器的购买流程,以及购买过程中如何云服务器地域、实例、带宽等关键配置和选择这些参数的一些注意事项,以供参考。
|
1月前
|
存储 弹性计算 固态存储
阿里云服务器ESSD Entry系统盘测评IOPS、IO读写和时延性能参数
ESSD Entry云盘是阿里云推出的新一代云盘,具备高IOPS、低延迟和企业级数据保护能力。适用于开发与测试场景,支持按量付费和包年包月计费模式。99元和199元的ECS经济型e实例和通用算力型u1实例均采用ESSD Entry系统盘,性价比高。详细性能参数和价格请参考阿里云官方页面。
76 0
|
2月前
|
存储 弹性计算 固态存储
阿里云服务器Entry云盘和ESSD Entry云盘区别、性能参数及使用常见问题参考
在我们选择阿里云服务器的时候,有部分云服务器同时支持ESSD Entry云盘和ESSD云盘,有的初次接触阿里云服务器云盘的用户可能还不是很清楚他们之间的区别,因此不知道选择哪种更好更能满足自己场景的需求,本文为大家介绍一下阿里云服务器Entry云盘和ESSD Entry云盘各自的性能参数区别及使用过程中的一些常见问题,以供选择参考。
|
2月前
|
前端开发 JavaScript
jQuery - AJAX load() 方法
jQuery load() 方法是简单但强大的 AJAX 方法。
58 6
|
3月前
|
JSON 前端开发 JavaScript
jQuery AJAX 方法
jQuery AJAX 方法
41 1
|
3月前
|
JavaScript 前端开发
jQuery - AJAX load() 方法
jQuery - AJAX load() 方法
26 2

热门文章

最新文章