if (request.getParameter("checkbox"+i).equals(""))

解决方案 »

  1.   

    得到的null不是字符串
    这样写试:
    if( request.getParameter("checkbox"+i)!=null && !request.getParameter("checkbox"+i).trim().equals("") )
    {
      //这个时候得到的值应该不是NULL了
      ....
    }
      

  2.   

    进行响应的jsp网页中,若要检查某复选框是否被选择时,并不建议您运用String类型的equals方法去对比控件输出的字符串是否on,因为未被选取的复选框将输出null,此时利用equals方法做对比,将发生错误,而导致意外发生。应该要对比复选框输出值是否为null:
    if(request.getParameter("复选框名称")!=null){...}
      

  3.   

    这样写比较好
    <!--
    function deliver()
    {
    var temp=false;
        for (i = 0; i < form1.chkAccount.length; i++)
          {
          if (form1.chkAccount[i].checked)
            {
              temp=true;
              break;
            }    
          }
    if(temp)
        {
      return true;
        }
    else
        {
          alert("请选择!");
          return false;
        }
    }
    --><logic:iterate id="viewList"  name="viewList" type="com.ideacom.siis.domain.Permission">
          <td width="25%"><p align="left"><input type="checkbox"   title="选中当前帐号" onclick="chk_onclick()" name="chkAccount" value="<bean:write name="viewList" property="id"/>"><bean:write name="viewList" property="name"/></td>
    </logic:iterate> 取值的时候这样就可以
    String[] permid;
    int id;
    permid=request.getParameterValues("chkAccount");   
            for(int i=0;i<permid.length;i++)
             {
                id=Integer.parseInt((String)permid[i]);
                 ...
             }希望你能看懂!!
      

  4.   

    我想我明白楼主的意思,其实你可以将这些checkbox的name设为同一个值,比如
    <input type="checkbox" name="favorite" value="旅游">旅游
    <input type="checkbox" name="favorite" value="散步">散步
    <input type="checkbox" name="favorite" value="钓鱼">钓鱼
    然后你用String[] favorite=request.getParameterValues("favorite")
    这个数组里存储的数据只包含那些被选中的checkbox的value,你看这样行不行
      

  5.   

    同意楼上,如果是有关系的几个checkbox,应该把它们的name设为相同的值,编成一组。