我在form表单中有一个复选框 然后提交到另外一个jsp页面 不是直接提交到servlet 
<input type="checkbox" name="boxes" value="11">11<br>
<input type="checkbox" name="boxes" value="22">22<br>
<input type="checkbox" name="boxes" value="33">33<br>
<input type="checkbox" name="boxes" value="44">44<br>
在JSP页面我用getParameterValues("boxes");获得的是数组 但是在输出的时候却总是错误
想加个if()判断一下数组长度是否为0 就出现 不带else的if错误什么的 
获得的值输出不出来 寻找高人讲解一下 复选框的提交问题 希望能再说一下表单提交到servlet和ajax提交
复选框的处理 谢谢 

解决方案 »

  1.   

    在servlet中 String[] checkbox = request.getParameterValues("boxes");
     获取  
    String str=null;
    for (int i = 0; i < checkbox.length; i++) {
    str += checkbox[i]+""
    }
    通过for循环把获取的数据连接成一个字符串
      

  2.   

    首先提交到servlet和jsp其实是一样的!1.你先去确定多选框是在form表单内
    2.确认提交的是含有那个多选框的表单
    3.确认是否有其他地方修改了那几个input的值
    4.如果以上都确认无误的话,那么你就把字符串拼接到url上再传递吧,到跳转的jsp去获取到再解析出来就可以了。
      

  3.   

    输出时出现什么错误?servlet获取复选框值的处理同jsp一样,ajax可以将选择的复选框的值拼接成key-value字符串或者xml、json格式发送。
      

  4.   

    我还是把代码贴出来吧<form id="myform" action="MyJsp.jsp">  
    下面输入用户名:<br> <input type="text" id="name" name="name" style={width:200px;}><br>
    下面输入密码:<br><input type="password" id="code" name="code" style={width:200px;} ><br>
    选择性别:<br> <input type="radio" name="sex" value="男" id="sex">男
              <input type="radio" name="sex" value ="女" id="sex">女
              <input type="radio" name="sex" value="李宇春" id="sex">李宇春<br> 
    选择你的从业经历(以下内容请至少选择一项):<br>
            <input type="checkbox" name="boxes" value="11">11<br>
            <input type="checkbox" name="boxes" value="22">22<br>
            <input type="checkbox" name="boxes" value="33">33<br>
            <input type="checkbox" name="boxes" value="44">44<br>
            <input type="checkbox" name="boxes" value="55">55<br>
            <input type="checkbox" name="boxes" value="66">66<br>
            <input type="checkbox" name="boxes" id="txt">自己写
             <input type="text" name="txt"><br>
            <input type="submit" value="注册">
       </form>
    下面是接受页面的代码<%request.setCharacterEncoding("utf-8");
      response.setHeader("iso-8859-1","utf-8");
      response.setCharacterEncoding("utf-8"); %>
      <%! String name=" ",code=" ",sex=" ",txt=" "; %>
    <% name = request.getParameter("name"); %>
    <% code = request.getParameter("code"); %>
    <% sex = request.getParameter("sex"); %>

    <%String arr[] = request.getParameterValues("boxes"); %>
       姓名: <%=name %><br>
       密码: <%=code %><br>
       性别: <%=sex %><br>
       选项: 
      <%System.out.print(arr.length); %>
       <%if(arr.length==0) %>
              <%{ %>
              <%="复选内容没有选择" %>
              <% }else {%>
                <%for(int i = 0;i<arr.length;i++){ %>
                 <%=arr[i] %>         
              <%}
              } %>
      
    这样的话一直会报错 页面一直接跳转不过来 删掉 if-else页面就不报错了 实在是弄不明白怎么回事啊
      

  5.   

    <body>
            <%
                request.setCharacterEncoding("utf-8");
                response.setHeader("iso-8859-1", "utf-8");
                response.setCharacterEncoding("utf-8");
                String name = " ", code = " ", sex = " ", txt = " ";
                name = request.getParameter("name");
                code = request.getParameter("code");
                sex = request.getParameter("sex");
                String[] arr = request.getParameterValues("boxes");
                String str = "";
                if (arr == null || "".equals(arr)) {
                    str = "复选框未选中";
                } else {
                    for (int i = 0; i < arr.length; i++) {
                        str += arr[i] + " ";
                    }
                }        %>
            姓名:
            <%=name%><br>
            密码:
            <%=code%><br>
            性别:
            <%=sex%><br>
            选项:
            <%=str%>
        </body>你改成这样试试就行了啊  哈哈