jsp部分如下:(其他略)
<c:forEach items="${persons}" var="person">
  <tr>
    <td width="12%" input type="checkbox" name="personId" value="${person.id}"/></td>
    <td>${person.nameMe}</td>
    <td>${person.mobile}</td>
    <td>${person.groupMe}</td>
    <td>
     <a href="${pageContext.request.contextPath}/person/toModify.do?id=${person.id}">修改</a><br>
     <a href="${pageContext.request.contextPath}/person/showDetail.do?id=${person.id}">详细信息</a><br>
    </td>
  </tr>
</c:forEach>在action中我用了两种方法得到的结果都为空,为什么????????
法一:String[] ids = request.getParameterValues("personId");  得到的ids 为空,为什么????
法二:Long[] personId = form.getPersonId(); 得到也为空。
      在form中有:
         private Long[] personId;
public Long[] getPersonId(){
return personId;
}
public void setPersonId(Long[] personId){
this.personId = personId;
}
很奇怪,第二种方法我以前是用过的,完全没有问题,但不知道这次是怎么回事,求高手赐教?立即给分(就这么多了,不然回多给点)

解决方案 »

  1.   

    ==================================
    发表于:2008-03-11 06:56:15
    1楼 得分:0
    你在说谎,你不可能只有10分可用分 对于不诚实的人,我拒绝回答! 已加入黑名单! 
    ===================================
    首先在这里向 “java2000_net” 表示最诚挚的歉意。
    我是第一次发帖子,还不知道在那里查看我的分数,只记得前些时下载的时候还有十二三分吧,所有才说了“就这么多了,不然回多给点”。
    为了表示歉意,我会把这10分给 “java2000_net”, 然后把我剩下的分全部加上继续求教此问题的答案。谢谢!
      

  2.   

    你在哪个action里取得,是不是在超链接对应的action?
    那就是没有submit的原因
      

  3.   

    应该是
    request.getParameter("personId")
    不是
    request.getParameterValues("personId");  吧
      

  4.   

    你可以看看XML配置文件中相应的ACTIONH和FORM之间的对应关系
      

  5.   

    你的代码是贴上来的么!!
    是不是有问题<td width="12%" input type="checkbox" name="personId" value="${person.id}"/> </td> 怎么<  这个起始符号了?  input 
      

  6.   

    request.getParameter("personId") 
      

  7.   

    <td input type="checkbox" id="a" name="b" value="${person.id}"/> </td>request.getParameter("b") 用名字取value
      

  8.   

    <td width="12%" input type="checkbox" name="personId" value="${person.id}"/> </td> 拜托,大哥,今天怎么全是标签都没写对的家伙
      

  9.   

    问题解决了,首先感谢大家的回帖,特别感谢3楼的 “fulianglove”。明天帖子能追加分是就给各位分数,回者都有。
    我用的是超链接,改成用<input type="submit" value="删除">让form的action提交就可以了。回6楼:应该是<td width="12%"><input type="checkbox" name="personId" value="${person.id}"/></td>,发贴时太粗心了,以后一定会注意。下面总结下这个问题。
    <c:forEach items="${persons}" var="person"> 
       <tr> 
         <td> <input type="checkbox" name="personId" value="${person.id}"/></td> 
         <td> ${person.nameMe} </td> 
         <td> ${person.mobile} </td> 
         <td> ${person.groupMe} </td> 
       </tr> 
    </c:forEach>
    在action里面得到checkbox有两种方法,如下:
    1.不用在form里面特殊的设置
      直接 String[] ids = request.getParameterValues("personId");
      因为有多个名字为personId的checkbox,所有以request.getParameter("personId")只能得到一个checkbox的value
    2.在form里面做设置,添加属性personId(和checkbox的name同名)和相应的getter和setter
       private Long[] personId;
    public Long[] getPersonId(){
    return personId;
    }
    public void setPersonId(Long[] personId){
    this.personId = personId;
    }
       在action里面直接Long[] personId = form.getPersonId();就行了。注意:
    不用犯和我错误一样的错误,这里的action应该是<input type="submit" value="删除">让action提交,而不是用超链接。
      

  10.   

    注意: 
    不用犯和我错误一样的错误,这里的action应该是 <input type="submit" value="删除"> 让action提交,而不是用超链接。
    原因,有人知道吗?????
      

  11.   

    用超链接可以用javascript提交,效果一样