将其作为用,号隔开的字符串,然后赋值给隐藏域,
jsp取得后在分解

解决方案 »

  1.   

    nwwolfhdy(衡德)说的方法在asp中可以,在JSP中好象不行,我试过,但也许是我写的代码有问题,关注
      

  2.   

    JAVASCRIPT中的变量不能直接传给jsp,只能通过document传
    <input name=XX,value="">
      

  3.   

    lmcctvjava(无心) ,我将我的代码贴上来,请大家指教!
    由于源代码比较多,只贴出涉及到的一部分代码:
    if(true){
    out.println("var button_save1 = document.createElement(\"INPUT\");");
    out.println("button_save1.setAttribute(\"id\",\"button_save\");");
    out.println("button_save1.setAttribute(\"type\",\"submit\");");
    out.println("button_save1.setAttribute(\"value\",\" 保  存 \");");
    out.println("toolbar1.appendChild(button_save1);");
    out.println("button_save1.onclick = function(){");
    out.println("for(var i = 0;i<table1.modifiedData.length;i++){");
    out.println("var tempInput = document.createElement(\"INPUT\");");
    out.println("tempInput.setAttribute(\"id\",\"modifiedData\");");
    out.println("tempInput.setAttribute(\"name\",\"modifiedData\");");
    out.println("tempInput.setAttribute(\"type\",\"hidden\");");
    out.println("var tempString = \"\";");
    out.println("for(var j = 0;j<table1.modifiedData[i].length;j++){");
    out.println("if(j!=0) tempString += \",\"");
    out.println("tempString += table1.modifiedData[i][j];");
    out.println("}");
    out.println("tempInput.setAttribute(\"value\",tempString);");
    out.println("form1.appendChild(tempInput);");
    out.println("form1.submit();");
    out.println("}");
    out.println("}");
    }
    说明:这是JSP代码的一部分,输出JS代码,其中table1.modifiedData[i][j]是JS中的二维数组,表示用户操作的数据表的记录,tempInput是hidden域,通过循环,向form表单中添加所有用户操作的记录,注意这里的hidden域的名字都是一样的--modifiedData。
    这样,如果要获得这些数据,可以这样:
    <%
    String[] s = request.getParameterValues("modifiedData");
    %>
    谢谢大家!
      

  4.   

    这个没什么好办法,只有二楼 nwwolfhdy(衡德) 的做法,我一般都是这么做。
    将javascript 变量赋给一个隐藏域再通过提交到jsp页面来达到你的目的!