2019独角兽企业重金招聘Python工程师标准>>>

  

  最近项目中需要做一个关于批量删除的功能,删除条件有多个,需要从页面全部传给后台服务器程序,单个的删除,可以拼接参数给url,服务器端获取参数后执行删除操作即可。但是批量删除多个,参数会很多,传递就有些麻烦。当然有一种比较常见的解决方法,是使用逗号、下划线、或者分号分割,然后传到后台拆分后再进行操作,这种方法需要前台拼接,后台解析,稍显繁复且容易出错。对于搞JAVA程序的我来说,显得不是很面向对象。于是很自然的想到了使用json字符串进行传递数据,具体步骤如下:1、先把想要传递的参数封装成js对象,代码样例如下:

  1. var params = [];
  2. var param = {};
  3. param["aaa"] = "a";
  4. param["bbb"] = true;
  5. param["ccc"] = 2;
  6. params.push(param);

  2、接下来把js对象转成json字符串,比较常见的做法是使用JSON.stringfy(),尝试一番之后发现IE8浏览器并不支持(该方法对谷歌、火狐、以及IE9以上版本浏览器完美支持),而我们当前的产品只支持IE浏览器,转而求救谷歌百度,找到一个比较通用的js方法,代码如下:

  1. function obj2Str(obj) {
  2. switch (typeof (obj)) {
  3. case 'object':
  4. var ret = [];
  5. if (obj instanceof Array) {
  6. for (var i = 0, len = obj.length; i < len; i++)
  7. {
  8. ret.push(obj2Str(obj[i]));
  9. }
  10. return '[' + ret.join(',') + ']';
  11. }
  12. else if (obj instanceof RegExp)
  13. {
  14. return obj.toString();
  15. }
  16. else
  17. {
  18. for (var a in obj)
  19. {
  20. ret.push(a + ':' + obj2Str(obj[a]));
  21. }
  22. return '{' + ret.join(',') + '}';
  23. }
  24. case 'function':
  25. return 'function() {}';
  26. case 'number':
  27. return obj.toString();
  28. case 'string':
  29. return '"' + obj.replace(/(\\|\")/g, '\\$1').replace(/\n|\r|\t/g, function (a)
  30. {
  31. return ('\n' == a) ? '\\n' : ('\r' == a) ? '\\r' : ('\t' == a) ? '\\t' : '';
  32. }) + '"';
  33. case 'boolean':
  34. return obj.toString();
  35. default:
  36. return obj.toString();
  37. }
  38. }

  3、前台封装好以后,使用ajax请求到后台,JAVA解析json字符串的方法不少,可以在网上找写好的方法,当然也可以使用json-lib-xxx.jar,这个jar包在项目中应用很广泛,LZ上一家公司就使用其做了大量json转化工作,使用方法如下:

  1. JSONArray jsonArray = JSONArray.fromObject(jsonStr);
  2. List<Map> cmdList = (List<Map>)JSONArray.toCollection(jsonArray, Map.class);

  4、通过内置方法转化成集合,再传递到ibatis或者自己使用的数据库持久层进行处理即可。

                                                                                                                                    技术分享:www.kaige123.com

转载于:https://my.oschina.net/kaige123/blog/744522

JavaWEB前端向服务器端发送对象相关推荐

  1. 微信小程序向java后端发送对象时 ,后端接收不到

    微信小程序前端向后端发送对象接收不到 这里时请求头 这里时data中做的假数据 这是封装好的 post请求 后端的Controller代码 返回的结果 接收结果为null  但是可以接到可以用过 加@ ...

  2. javaweb 前端发送list对象,后台接收过程实现代码

    前端ajax: $.ajax({url:"http://localhost:8099/createTable",type:"post",dataType:&qu ...

  3. javaweb学习总结(十)——HttpServletRequest对象(一)

    2019独角兽企业重金招聘Python工程师标准>>> 一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协 ...

  4. javaweb学习总结(十)——HttpServletRequest对象(一)(转)

    (每天都会更新至少一篇以上,有兴趣的可以关注)转载自孤傲苍狼 一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器 ...

  5. 前端输入框错误提示_WEB/APP开发基础之旅--前端、服务器端、数据库综合开发案例...

    本节内容就涉及到了前端.服务器端.数据库管理的综合开发,内容比较多,思路也相对复杂.从定位来说,前端主要是用户浏览网页或者APP,在浏览时就是默认发送了GET请求,即从服务器端获取内容进行显示,同时适 ...

  6. docker命令行解析以及如何向服务器端发送请求(docker源码学习一)

    最近在看doccker的源码,最新的master分支(估计是1.12.4,因为最新的release是1.12.3)命令行解析全部都使用了第3方的包https://github.com/spf13/co ...

  7. netty发送对象消息

    前言 通过之前的学习,我们知道使用netty在客户端和服务端之间很容易发送一个文本类的消息,但在实际应用中这肯定是不够用的,像java中使用最多的对象这种形式的数据,在客户端和服务端通信的时候也必然会 ...

  8. Python Day 67 Dango框架图解(总结)、Wsgiref和uwsgi、前后端传输数据的编码格式、From表单和Ajax方式在前端往后端发送文件、补充一下页面清缓存...

    ##Django框架图解 ##前后端传输数据的编码格式 #前后端传输数据的编码格式1.urlencoded 2.formdata 3.application/json ##From表单和Ajax方式在 ...

  9. JavaWeb——JSP九大内置对象及作用域详解

    文章目录 JavaWeb--JSP九大内置对象及作用域 1. 九大内置对象 1.1 request对象 1.2 response对象 1.3 out对象 1.4 session对象 1.5 appli ...

  10. php 返回一个json对象,PHP给前端返回一个JSON对象的实例讲解

    解决问题:用php做后台时,如何给前端发起的AJAX请求返回一个JSON格式的"对象": 说明:我本身是一个前端,工作久了之后发现要是不掌握一门后端开发语言的话,总感觉有点无力.最 ...

最新文章

  1. [uart]stty命令使用
  2. python 爬虫面试题_Python爬虫面试题
  3. css如何各种中文字体如雅黑、黑体、宋体、楷体等等
  4. 装箱问题(信息学奥赛一本通-T1226)
  5. JSON Schema
  6. Redis管理及监控工具treeNMS
  7. java海康摄像头添加人脸_java及opencv实现调用本地摄像头、网络摄像头完成人脸检测、人脸收集、人脸识别、性别识别...
  8. SRS:软件需求规格说明书
  9. 2022年12月最新快速批量删除微博内容_新版本如何批量删除微博以前发过的博文内容
  10. springboot点餐微信小程序毕业设计源码221144
  11. “朝抵抗力最大的路径上走”
  12. 梨子的功效与作用_梨的9种不为人知的价值
  13. A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHM
  14. 值得推荐好用的网址导航网站大全
  15. AWD比赛入门攻略总结
  16. sqlserver插入数据时如何忽略主键重复的数据
  17. 【VisionMaster】卡尺工具
  18. 2690. Soda Surpler
  19. jsoup填充内容然后html转word
  20. 极验系列文章一:极验三代 极验验证码整体流程分析

热门文章

  1. 扑克牌的完美洗牌算法
  2. S3C6410 SD卡启动uboot分析(详细)
  3. ArrayList转换类型为DataTable类型
  4. [解决方案]SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
  5. install4j Enterprise Edition序列号
  6. 编程基础(一)——计算机中的数
  7. Android环境下的GDB调试
  8. TCP UDP 本地套接字 网络套接字
  9. OpenCV 利用MFC的Picture控件显示和处理图像
  10. 高通camx clock配置