前端传递字符串给后端,并将其转化为JSONArray进行处理

news/2024/7/19 13:42:17 标签: json, javascript, js, java

fastjson>json运用

前端传递数组给后端,

首先创建数组对象,

java">        var cartItemId = new Array();

将数据存入数组中后,使用stringify将数组字符串化,

javascript>javascript">        cartItemId = JSON.stringify(cartItemId);

用$.ajax()方法传给后端进行处理

javascript>javascript">        $.ajax({
            type: "POST",
            url: "viewOrderForm",
            data: {
                    "orderItemId": cartItemId,
                    "orderItemQuantity": cartItemQuantity,
                    "totalMoney":singleProductTotal
            },
            dataType: 'text',
            success:function (data) {
                console.log("服务器接收改变数量为" + cartItemId + cartItemQuantity + singleProductTotal)
                console.log(data);
                window.location.replace(data);
            }
        })
    })

后端获取数据进行处理

java">        //获取字符串
        String itemString = request.getParameter("orderItemId");
        String quantityString = request.getParameter("orderItemQuantity");
        String moneyString = request.getParameter("totalMoney");

将字符串转化成JSONArray

java">        //转换成JSONARRAY
        JSONArray itemArray = JSON.parseArray(itemString);

用get方法获得数组中每个元素并进行后续操作

java">            System.out.println(itemArray.get(i).toString());

前端代码总:

javascript>javascript">//提交按钮
    var $submitorder = $("#submitOrder");
    $submitorder.on("click", function () {
        //提交购物车数据给服务器
        //产品item信息
        var cartItemId = new Array();
        //产品数量信息
        var cartItemQuantity = new Array();
        //产品单品总价array
        var singleProductTotal = new Array();

        //获取所有的产品的item
        var currentItem = document.getElementsByClassName("itemId");
        //所有的总价
        var allTotalPrice = document.getElementsByClassName("totalPrice");
        for(var i = 0 ; i < allTotalPrice.length ; i++){
            var innerPrice = allTotalPrice[i].innerHTML;
            console.log("单品总价" + i + "="+ innerPrice)
            innerPrice = innerPrice.trim();
            innerPrice = innerPrice.substring(1);
            singleProductTotal[i] = innerPrice;

        }

        for (var i = 0; i < currentItem.length; i++) {
            //获取产品的itemId
            var currentItemId = currentItem[i].innerHTML;
            currentItemId = currentItemId.trim();
            console.log(currentItemId);
            cartItemId[i] = currentItemId;
            //获得产品数量
            var currentQuantity = quantityInput[i];
            currentQuantity = currentQuantity.value;
            currentQuantity = parseInt(currentQuantity);
            console.log(currentQuantity);
            cartItemQuantity[i] = currentQuantity;
        }

        //字符串化
        cartItemId = JSON.stringify(cartItemId);
        cartItemQuantity = JSON.stringify(cartItemQuantity);
        singleProductTotal = JSON.stringify(singleProductTotal);

        $.ajax({
            type: "POST",
            url: "viewOrderForm",
            data: {
                    "orderItemId": cartItemId,
                    "orderItemQuantity": cartItemQuantity,
                    "totalMoney":singleProductTotal
            },
            dataType: 'text',
            success:function (data) {
                console.log("服务器接收改变数量为" + cartItemId + cartItemQuantity + singleProductTotal)
                console.log(data);
                window.location.replace(data);
            }
        })
    })

后端代码总:

java">        Cart cart = new Cart();

        //获取字符串
        String itemString = request.getParameter("orderItemId");
        String quantityString = request.getParameter("orderItemQuantity");
        String moneyString = request.getParameter("totalMoney");

        //转换成JSONARRAY
        JSONArray itemArray = JSON.parseArray(itemString);
        System.out.println(itemArray);
        JSONArray quantityArray = JSON.parseArray(quantityString);
        System.out.println(quantityArray);
        JSONArray moneyArray = JSON.parseArray(moneyString);
        for(int i = 0; i < itemArray.size(); i++) { //循环打印出数组
            System.out.println(itemArray.get(i).toString()+quantityArray.get(i) .toString()+moneyArray.get(i).toString());
//            System.out.println(quantityArray.get(i));
        }
        //赋值给cart
        for(int i = 0 ; i < itemArray.size() ; i++){
            Item item = catalogService.getItem(itemArray.get(i).toString());
            int quantity = Integer.parseInt(quantityArray.get(i).toString());
            BigDecimal total = new BigDecimal(moneyArray.get(i).toString());
            cart.addItem(new CartItem(item,quantity,total));
        }

 


http://www.niftyadmin.cn/n/1305148.html

相关文章

使用Maven构建WebApp项目(不使用maven模板)

使用IntelliJ自带的Maven&#xff0c;在setting的Build工具中可以看到Maven的配置文件和本地Maven仓库的地址。 不使用Maven的模板进行创建方法&#xff1a; 1、Maven是基于JDK的&#xff0c;选择自己有的JDK&#xff0c;点击next进行创建 2、命名&#xff0c;确定坐标三要素&…

IntelliJ中tomcat的添加与使用

准备工具&#xff1a;IntelliJ和tomcat的包 tomcat的添加 1、选择add configuration 选择Templates Application server &#xff0c;configure选择本地下载好的的tomcat 再添加一个local进来 进行Fix部署 可以更改访问网站的地址 完成后apply即可 这样就可以运行啦

从Maven模板创建Web项目与maven项目部分依赖的记录

一、从Maven模板创建Web项目 creat new project&#xff0c;选择从maven模板创建 二、给项自己命名 选择重写setting文件和仓库地址&#xff08;setting中写了镜像&#xff09;&#xff0c;添加archetypeCatalog internal属性&#xff0c;以提高后面的加载速度。参考https://…

记录第一个Vue+Vscode项目的安装

一、我的安装背景 在已全局安装好npm&#xff0c;cnpm&#xff0c;vue-cli&#xff0c;vscode的条件下 &#xff08;全局安装vue-cli用命令&#xff09; npm install -g vue-cli 二、开始安装 1、打开VScode&#xff0c;进入自己建好的文件夹&#xff0c;按Ctrl 打开终端 …

QuartusII和Modelsim联合仿真实现不带时钟信号的简单乘法器

创建项目 找个地方新建文件夹&#xff0c;设置这个项目的路径为那个文件夹&#xff0c;项目名字可以自己取&#xff08;为了避免后面的不统一&#xff0c;建议和我取一样的&#xff09; 从空项目创建 不用添加任何文件 选择开发板&#xff0c;我选择的是这个&#xff0c;然后ne…

腾讯云centos7安装静默安装oracle

特别感谢这位学长&#xff08;or学姐&#xff09;的资料 安装过程 获得oracle的两个安装压缩包&#xff0c;可以从官网获取到本地&#xff0c;再用xftp传到云服务器上&#xff0c;或者直接在云服务器上用wget来获得&#xff08;只要网好网站ok你能获得到&#xff09; 下面呢我…

windows安装oracle instant client并用navicat连接云服务器上的oracle(一)

第一部分解决的是连接超时问题&#xff0c;是云服务器上面的一些配置问题 第二部分正式在windows上安装oracle instant client 一、本人所具有相关的一些环境 远程&#xff1a; 腾讯云服务器 centos7.5 64位 已安装好oracle11g&#xff08;oracle安装教程见上一篇博客&#xf…

windows安装oracle instant client并用navicat连接云服务器上的oracle(二)

第一部分解决的是连接超时问题&#xff0c;是云服务器上面的一些配置问题 第二部分正式在windows上安装oracle instant client 解决超时问题后&#xff0c;再次从navicat连接&#xff1a; 会发现不是超时的问题&#xff0c;而是另一个问题 ORA-12514:TNS:listener does not …