JAVA前后台传递数组方法总结

1、从前台向后台传递数组
需求是:比如相同name的几个控件的value要传递到后台进行比较处理

        var CA_CERT = document.getElementsByName("CA_CERT");
        var _list = [];  
        for (var i = 0; i < CA_CERT.length; i++) {  
            _list[i] = CA_CERT[i].value;  
        } 
        $.ajax({
            url:'ca?event=testCertList',
            data:{"caCertArray":_list}, 
            traditional :true,  //注意这个参数是必须的
            type: "POST",  
            success:function(result){
                if(result == "GOOD"){
                    document.getElementById("stage_two").style.display="";
                }else if(result == "ERROR"){
                    alert("所上传证书不是一个完整的证书链,请重新上传!");
                }
            }
        });
    }

后台获取:

String[] caCertArray = request.getParameterValues("caCertArray");









后台向前台传递,可以先将数组放在JSONArray中(需要引入第三方jar包),然后放入response中,前台获取后需要先用eval()方法处理一下才可以使用。

        JSONArray jsArr = new JSONArray();
        jsArr.add(subject);
        jsArr.add(strStartDate);
        jsArr.add(strEndDate);
        response.getWriter().write(jsArr.toString());

前台获取:

        $.ajax({
            url:'ca?event=getCertChainUnderInfo',
            data:{"caCertArray":_list},
            traditional:true,
            type:"POST",
            success:function(result){
                //eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
                //在这里是将String转化为数组形式
                var  datas= eval(result);  
                document.getElementById("label_CA_SUBJECT").innerText = datas[0];
                document.getElementById("label_CA_BEGIN_TIME").innerText = datas[1];
                document.getElementById("label_CA_END_TIME").innerText = datas[2];
            } 
        });








在jquery的ajax函数中,可以传入3种类型的数据

1.文本:”uname=alice&mobileIpt=110&birthday=1983-05-12”

2.json对象:{uanme:’vic’,mobileIpt:’110’,birthday:’2013-11-11’}

3.json数组:

[
{“name”:”uname”,”value”:”alice”},
{“name”:”mobileIpt”,”value”:”110”},
{“name”:”birthday”,”value”:”2012-11-11”}
]

你可能感兴趣的:(java,网站设计)