JavaWEB前端向服务器端发送对象(java向服务器发送数据)

createh52个月前 (02-01)技术教程18

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

var params = [];

var param = {};

param["aaa"] = "a";

param["bbb"] = true;

param["ccc"] = 2;

params.push(param);

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

function obj2Str(obj) {

switch (typeof (obj)) {

case 'object':

var ret = [];

if (obj instanceof Array) {

for (var i = 0, len = obj.length; i < len; i++)

{

ret.push(obj2Str(obj[i]));

}

return '[' + ret.join(',') + ']';

}

else if (obj instanceof RegExp)

{

return obj.toString();

}

else

{

for (var a in obj)

{

ret.push(a + ':' + obj2Str(obj[a]));

}

return '{' + ret.join(',') + '}';

}

case 'function':

return 'function() {}';

case 'number':

return obj.toString();

case 'string':

return '"' + obj.replace(/(\\|\")/g, '\\$1').replace(/\n|\r|\t/g, function (a)

{

return ('\n' == a) ? '\\n' : ('\r' == a) ? '\\r' : ('\t' == a) ? '\\t' : '';

}) + '"';

case 'boolean':

return obj.toString();

default:

return obj.toString();

}

}

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

JSONArray jsonArray = JSONArray.fromObject(jsonStr);

List cmdList = (List)JSONArray.toCollection(jsonArray, Map.class);

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

---更多Java学习资料可关注微信公众号:kaigexuetang_com(长按可复制关注)

相关文章

推荐几个好用Redis图形化客户端工具

RedisPlushttps://gitee.com/MaxBill/RedisPlus RedisPlus是为Redis可视化管理开发的一款开源免费的桌面客户端软件,支持Windows 、Linux...

Java 中的 Http 客户端 API:身份验证

.介绍在本系列的第一部分(链接此处)中,介绍了 java http 客户端 API 的基本功能。现在我们将探讨当今应用程序中广泛使用的一些更常见的用例。我们将学习如何通过提供凭据来访问安全端点。基本认...

BsinCopilot:Java版端到端大语言模型开发框架

BsinCopilot是基于BsinPaaS开源框架构建的大语言模型应用SaaS服务,借鉴langchain的框架思想,引入 langchian4j组件,微前端微服务的架构设计,可快速助您构建和体验...

图文并茂,带你梳理一下 OAuth2.0 概念和授权流程

阅读目录OAuth2 的概念OAuth2授权模式授权码模式(Authorization Code Grant)隐式授权模式(Implicit Grant)密码模式(Resource Owner Pas...

java本地搭建宝塔部署实战likeadmin后台系统源码server端(一)

大家好啊,我是测评君,欢迎来到web测评。上次分享了那几期likeadmin的搭建视频教程,由于是php开发的,这对有些习惯用java开发的同学不太友好,好在这套系统也有java版本的,也有朋友让我录...