<script>
//jsp只能取得页面对象的值,所以把javascript里的值转换到隐藏对象去。arr是你已经得到的数组
for (var i=0; i<arr.length; i++)
{
  var obj=document.createElement("HIDDEN");
  obj.name="names"+i;
  obj.value=arr[i];
}//下面这句应该在方法体内部,不然你就看不到你的页面 ^_^
document.forms[0].submit();
</script>

解决方案 »

  1.   

    提交未必非要按钮触发,楼上的例子就可以直接触发提交事件!
    记住一条规律,客户端的事件如果不提交,服务器根本不知道你在干什么,所以要想在JSP中获得JS中的数据,不提交是不可能的!
      

  2.   

    提交后在jsp页面中应该怎样得到呢?
      

  3.   

    楼主那代码难看.
    你那JS 和 Java 不可能同时执行 ( 一个在客户端,一个在服务端).先说说你为什么需要这样 把那些名字提交 的 实现方式, 说出来肯定可以找到其他方法达到目的的. 
      

  4.   

    TO: humanity(总是偷窥 Java & XML)     因为我们写了一个java的方法,方法中传入input的name,就可以在jsp上print出检查该input填入内容是否合法的javascript程序。如下代码:
       <%
    //验证检查
    ErrorCheck check = new ErrorCheck();//实例化一个合法性检查的类
    check.setFormName("form1");//设定form名
    check.nullCheck("inputName","不能为空");//该方法会凑出检查inputName是否为空的一个javascript代码字符串
    String ErrorCheckScript=check.ErrorCheckScript();//生成javascript字符串
    out.print(ErrorCheckScript);//在JSP页面上生成javascript
    %>  而我现在JSP上有一堆INPUT需要做同样的合法性检查:check.nullCheck("inputName","不能为空");
      于是想得到所有的input name,然后遍历,如下:
       for (int i=0; i<inputName.length; i++) {
         check.nullCheck(inputName[i],"不能为空");   
        }   由于inputName是有javascript得到的数组,如何能放到java的数组inputName[]里?
      

  5.   

    呵呵,等一些时间就可以了,等到java6 就行了~
      

  6.   

    呵呵,等一些时间就可以了,等到java6 就行了~
      

  7.   

    to: 提交后在jsp页面中应该怎样得到呢?<script>
    //jsp只能取得页面对象的值,所以把javascript里的值转换到隐藏对象去。arr是你已经得到的数组
    //定义一个对象,来存取数组的个数
    var length=document.createElement("HIDDEN");
    length.name="size";
    length.value=arr.length;
    for (var i=0; i<arr.length; i++)
    {
      var obj=document.createElement("HIDDEN");
      obj.name="names"+i;
      obj.value=arr[i];
    }//下面这句应该在方法体内部,不然你就看不到你的页面 ^_^
    document.forms[0].submit();
    </script>
    然后在jsp里
    <%
    ...
    String strSize=request.getParameter("size");//看这里length.name="size";
    int intSize=0;
    try { intSize=Integer.parseInt(strSize); }
    catch (Exception ex){}
    String[] values=new String[intSize];
    for (int i=0; i<intSize; i++)
    {
      values[i]=request.getParameter("names"+i); //和这里对应的obj.name="names"+i;
    }//values里就是你要的东西了
      

  8.   

    利用隐藏域,存放带有分割符的字符串,然后在jsp中拆分出来
      

  9.   

    写一个隐藏的
    <FORM name="hidfrm" style="display:none" action="rs.jsp">
    <input name="hidtxt" type="hidden" value="">
    </form><script language="JavaScript" type="text/JavaScript">
    var namelist = "";function initInputTextName() {
    var size = document.all.tags('input').length;
    var j=0;
    for (var i=0; i<size; i++) {
       if (document.all.tags('input')[i].type=="text"){
                             //this[j++]=document.all.tags('input')[i].name; //可以不要
                             nameList+=document.all.tags('input')[i].name+",";
                         }
    }
                      document.hidfrm.hidtxt.value=nameList;  //赋值,采用逗号分割
                      document.hidfrm.submit();  //提交表单
    }
    //var inputTextName = new initInputTextName();   //这个可以不要//调用inputTextName函数 完成值组装后自动提交表单
    inputTextName(); 
    </script>
    rs.jsp 文件中这样取得
    <%
    String nameStr = request.getParmeter("hidtxt");
    String[] nameList = nameStr.split(",");   //这个数组就是你要的数组了
    %>