关于在Java获得js中的数组 各位大哥帮帮忙!

问题描述

1.我在js脚本中定义的一个数组对象my_array,并通过ajax传递给后台的Java页面;在js页面定义的数值如下:varmy_array=newArray();if(result){$('input[type=checkbox]:checked').each(function(){my_array.push($.trim($(this).attr('value')));});2.我在Java页面通过request.getParameterMap()的到这个对象,(注:当前request中只有该对象my_array);3.map=request.getParameterMap();Collection<String>rightIdList=map.values();String[]newLists=rightIdList.toArray(newString[]);结果系统提示:ArrayStoreException-如果指定数组的运行时类型不是此collection每个元素运行时类型的超类型我想知道是不是我无法在Java中的通过js定义的数组,或者是这种方法是不是行不通?

解决方案

解决方案二:
我也不知道,不懂帮顶
解决方案三:
我也不懂,关注
解决方案四:
我不懂!帮你顶
解决方案五:
将数组序列化,后台获取后,再反序列化
解决方案六:
如果数据量小,那就拼装成字符串吧然后在后台截取
解决方案七:
用JSON来传递的话,请参考下边的方法.在客户端将需要传送到服务器端的二维数组或列表数据转化为JSON对象,再通过Ajax传送到服务器端1.首先将数据组成符合JSON键值对格式的数据{"名称":"值","名称":"值","名称":"值","名称":[{"名称":"值","名称":"值","名称":"值"}]//(代表二维数组)}例如:varbmhlist={"maxnum":30,"errorcode":1,"bmha":[{"bmh":"0151810151810000085","dfdxx":"1|2|","pycj":3},{"bmh":"0151810151810000086","dfdxx":"3|4|","pycj":7},{"bmh":"0151810151810000087","dfdxx":"3|4|","pycj":7},]}2.将JSON格式的数据转化为JSON对象,并赋给变量varbmhAsJSON=Object.toJSON(bmhlist);3.通过Ajax将JSON对象传送给服务器端varmailAjax=newAjax.Request('yjtx.do?method=getJson',//url及需要调用的服务器端的方法{method:'get',parameters:"bmhlist="+bmhAsJSON,//将JSON对象作为参数(参数名为bmhlist)传给服务器端的getJson方法onSuccess:function(transport){//传送成功后执行的函数//alert(transport.responseText);}});在服务器端获得客户端传送的JSON对象publicvoidgetJson(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){Stringjson=request.getParameter("bmhlist");//得到reguest中的JSON对象的字符流JSONObjectjsonObject=null;//定义一个JSONObject对象try{Objectobj=JSONValue.parse(json);//将得到的JSON对象字符流转化为对象jsonObject=(JSONObject)obj;//将对象强制转化为JSON对象JSONArrayarray=(JSONArray)jsonObject.get("bmha");//得到JSON对象中键值为"bmha"的数组转化为JSONArray数组for(inti=0;i<array.size();i++){jsonObject=(JSONObject)array.get(i);//得到JSONArray数组中的每个元素并将其强制转化为JSONObject对象logger.info("jsonObject.getbmh:"+jsonObject.get("bmh"));//通过JSONObject的get(键值)方法获得每个键值对的值,然后根据需要进行后续处理logger.info("jsonObject.getdfdxx:"+jsonObject.get("dfdxx"));logger.info("jsonObject.getpycj:"+jsonObject.get("pycj"));}}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}
解决方案八:
放在表单里的复选框,可以通过这样的方式传值到后台页面<formaction="StringsServlet"><inputname="checkbox"type="checkbox"value="1"/><inputname="checkbox"type="checkbox"value="2"/><inputname="checkbox"type="checkbox"value="3"/><inputname="checkbox"type="checkbox"value="4"/><inputname="checkbox"type="checkbox"value="5"/><inputname="checkbox"type="checkbox"value="6"/><inputtype="submit"value="tijiao"/></form>

StringsServletprotectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{String[]a=request.getParameterValues("checkbox");System.out.println(a.length);for(inti=0;i<a.length;i++){System.out.println(a[i]);}}

这样子就能把表单中选中的复选框的value值拿到

时间: 2024-12-28 00:50:59

关于在Java获得js中的数组 各位大哥帮帮忙!的相关文章

js中一维数组和二位数组中的几个问题示例说明_基础知识

js中的数组,可以存放各种数据类型(数值,字串) js中的数组没有越界,当输出的数组下标越界了,会显示undefined. js中的数组是默认动态增长的 遍历数组的一种简单方式. for(var key in arr){ window.alert(key+"= "+arr[key]); } 在给一个空的二维数组赋值的时候出现的问题: var arr2=[]; arr2[1][1]=45;//js不支持这种赋值方法 解决方法: //在这之前需要初始化定义arr2有多少行. for(var

JS中Array数组的三大属性用法

原文:JS中Array数组的三大属性用法 Array数组主要有3大属性,它们分别是length属性.prototype属性和constructor属性. JS操作Array数组的方法及属性 本文总结了Array数组的3个属性,length属性.prototype属性.constructor属性使用,并附注Array数组对象的8个分类及多个方法使用,具体如下: 对象的3个属性 1.length属性 length属性 Length属性表示数组的长度,即其中元素的个数.因为数组的索引总是由0开始,所以

JS中对数组元素进行增删改移的方法总结_javascript技巧

在js中对数组元素进行增删改移,简单总结了一下方法: 方法 说明 实例 push( ); 在原来数组中的元素最后面添加元素 arr.push("再见58"); unshift( ); 在原来数组中的元素最前面添加元素 arr.shift("你好58"): pop(); 移除数组中最后面的一个元素 arr.pop(); shift(); 移除数组中最前面的一个元素 arr.shift(); concat(); 拼接两个数组中的元素     (哪个数组在前面,拼接后它的

javascript-怎么将jsp中list变量传给js文件,求大神帮帮忙

问题描述 怎么将jsp中list变量传给js文件,求大神帮帮忙 从后台action传了一个List类型的值bxLists给了jsp页面, 然后我还要将该值传给另一个js文件处理,我先在jsp页面将该值隐藏起来了 jsp页面如下: <input type="hidden" id="bxlists" name="bxlists" value="${bxLists}"/> 然后在js页面定义了一个数组接收 js页面如下:

javascript- 不使用ActiveXObject,在js中调用exe程序,求帮忙

问题描述 不使用ActiveXObject,在js中调用exe程序,求帮忙 因为使用new ActiveXObject("wscript.shell"); 需要使用IE插件 解决方案 如果是windows操作系统,可以使用协议扩展 http://zhidao.baidu.com/link?url=A4QX1crr32EbPtuCtLLSnvf_oi_lxL8aAeUqjWaA_jcH8BqEBUXEVPdPEMaI_O-RUpeskn-onCwkW7IMrX0GRuFPodxWAR1l

数组循环遍历后的结果 放入list集合中 请各位大神帮帮忙 代码怎么写呀

问题描述 数组循环遍历后的结果 放入list集合中 请各位大神帮帮忙 代码怎么写呀 //数组res for(int i = 0; i < res.length; i++){ numValue=res[i].toString(); System.out.print(res[i] + " "); } 循环遍历后怎么放入list集合中 //List list = new ArrayList(); 解决方案 public static void main(String[] args){

我从朋友那边得到一个.net开发的网站,但却无法在visualstudio2003中打不开?帮帮忙了

问题描述 我从朋友那边得到一个.net开发的网站,但却无法在visualstudio2003中打不开?帮帮忙了 解决方案 解决方案二:用notepad打开不就行了解决方案三:你先把那网站挂到IIS服务器上去,然后再用VS2003来打开Web上的项目,VS2003就会自动生成一个解决方案了!解决方案四:UP解决方案五:也许人家是用VS2005或VS2008开发的,你当然无法打开解决方案六:有点难度哦

js中的数组Array定义与sort方法使用示例_javascript技巧

Array数组相当于java中的ArrayList 定义方法: 1:使用new Array(5 )创建数组 var ary = new Array(5): 2:使用Json语法,var ary = [1,3,4]: 数组排序: 例: 复制代码 代码如下: function sort(){ var ary=[11,12,3,5,29]; ary.sort();//按照字符编码排序11,12,29,3,5; alert(ary.toString()); ary.sort(function(v1,v2

关于js中关联数组的使用问题

问题描述 两个例子function test1() { var array1 = { "A":"a","B":"b","C":"c" }; for (key in array1) { // 能够正常输出数组 alert('=1=1=====' + key); alert('=1=2=====' + array1[key]); }}function test2() { var array2