本帖最后由 flowerjack 于 2012-08-28 15:33:27 编辑

解决方案 »

  1.   

    得把数组转为JSON格式才行,比如:<%
      String javaArrs = "[1, 2, 3]";
    %>
    <script>
    var jsArrs = <%=javaArrs%>;
    alert(jsArrs[1]);
    </script>
      

  2.   


    <%
    byte [] fileContect;
    %>
    <script>
    function methodA(a ,b, c){}methodA("<%=new String(fileContect)%>");</script>
      

  3.   

    =======================我是楼主============================
    byte [] fileContect;其实是一个文件,要把它设为JS函数的一个型参
      

  4.   

    <%
    byte [] fileContect;
    //...
    String javaArraysStr = Arrays.toString(fileContect);
    %><script>
    var jsVar = <%=javaArraysStr%>;
    </script>
      

  5.   


    JSON 是 JS 的一种标准数据交换格式,你使用下一楼的例子就知道了。如果是纯JS代码就是:
    var objs = ["Hello", "World", "!!!"];
    alert(objs[1]);
      

  6.   

    =======================我是楼主============================
    byte [] fileContect;其实是一个文件(后台取的),要把它设为JS函数的一个型参
      

  7.   


    知道你想这样做但js能把一个文件的字节数组怎么着???jsp 生成html的时候 也就是你想把数据从jsp传到js的时候 一般只能传字符串你可以把文件byte数字转成16进制字符串,传到页面
      

  8.   


    唉,还是没说到点子上啊算了,就给你个例子,自己运行下也应该知道意思了:
    <%
      byte[] fromJava = {64, 65, 66}; // 这里应该是 request.getAttribute("xxoo"); 或者调某JavaBean获取
      String toJSON = Arrays.toString(fromJava); // 得到对应的JSON字符串,可以供JavaScript使用。
    %>
    <script>
    // 这是你的JS函数
    function myFun(paramBytes) {
      alert(paramBytes[0]);
      alert(paramBytes[1]);
      alert(paramBytes[2]);
    }// 这是调用你JS函数的
    var paramObj = <%=toJSON%>; // 这里就变成JS数组对象了
    myFun(paramObj); // 直接就传参了
    </script>
    楼主你先试试看,应该就能理解了,传参是没有问题的。
      

  9.   


    不要误会,只是简单数组恰好能得到JSON字符串而已,复杂对象用这个是不行的。
      

  10.   


    恩 字符串数组就不行了,生成的结果类似 [aaa,bbb] json应该是 ['aaa','bbb'] Arrays 一直没怎么用,看到兄台这样转,佩服
      

  11.   

    Arrays.toString()已经算是用了StringBuilder优化了,怕是没什么优化空间了。
      

  12.   

    哪位过来接一下分http://topic.csdn.net/u/20120825/11/0ad57078-54ea-409a-bfd0-297f9e9bf0bd.html
      

  13.   

    后来分析了一下,发现是我们的base64加密算法出了问题,改过后,3M的一份文件,转完后用的内存为5M左右;
      

  14.   

    function svv(){
    var o='ccc';
    var p='eee';
    var q='fff';
    showDialogByVarAndFuncAndParams("haha",c,[o,p,q]);
    }
    function c(f){
    d.apply(this,f);     //apply 是重点
    }
    function d(a,b,d){
    alert(a);
    alert(b);
    alert(d);
    }
    function showDialogByVarAndFuncAndParams(msg,transferFunction,params){
    $("#dialog_message").html(msg);
    $("#messageDialog").dialog({   
      modal:true,
      buttons:{
      "确认":function(){$(this).dialog("close");
      transferFunction.apply(this,params);
      }}
    });
    }

    这样是可以的,我正好碰上这样的需要 并且测试成功了。