我需要把file列表的所选记录的fileID放到checkbox的value中,通过在formbean中的字符串数组传到action中去,现在checkbox能在jsp页面上显示了,但是选项打勾表单提交后传不到action中去。
不知道我说得清楚不,下面是我的jsp的部分代码,请大家看看错哪了,该怎么改。
<html:form action="/magbookmanage/BorrowListAdmin">
<table >
<tbody>
  <logic:notEmpty name="items">
       <c:forEach items="${borrows}" var="borrow">
 <tr>
             <th><logic:iterate id="borrow" name="items" property="selectItems" >
<input type="checkbox" name="borrowID" value="<bean:write name='borrow' property='borrowID'/>"/>
    </logic:iterate></th>
</tr>
      </c:forEach>
 </logic:notEmpty>
</tbody>
</table>
<tfoot>
  <tr><td colspan="2"><html:submit>删除所选项</html:submit></td></tr>
</tfoot>
</html:form>在formbean中定义一String[]变量selectItems记录所选的fileID集。

解决方案 »

  1.   

    <input type="checkbox" name="borrowID" value="<bean:write name='borrow' property='borrowID'/>"/>
    既然是borrowID,那么form中应该是定义borrowID啊,为什么定义selectItems你只需定义borrowID的getter setter,调用getter时获得的就是已选中的记录的ID列表了。
      

  2.   

    我建的borrow表里borrowID是int类型,那这个form里的borrowID是不是应该是String[]类型?
      

  3.   

    最好是String,取出来转换一下就可以了。不过你可以试试用整型数组(我没有试过,试了告诉你)。
      

  4.   

    可以获得,我试过了,我的PO里面是Integer类型。
      

  5.   

    不行啊传不过去,这是我写的form里相关代码,你看看哪错了,
    private Integer[] borrowID;
    public Integer[] getborrowID() {
    return borrowID;
    }
    public void setborrowID(Integer[] borrowID) {
    this.borrowID = borrowID;
    }jsp里是这样的:
    <logic:notEmpty name="items">
           <c:forEach items="${borrows}" var="borrow">
     <tr>
                 <th><logic:iterate id="borrow" name="items" property="selectItems" >
    <input type="checkbox" name="borrowID" value="<bean:write name='borrow' property='borrowID'/>"/>
        </logic:iterate></th>
    </tr>
          </c:forEach>
     </logic:notEmpty>
      

  6.   

    是不是<logic:iterate id="borrow" name="items" property="selectItems" >没有写全啊?
    你的代码里indexId是什么呀?是必需的么?不好意思比较菜
    <logic:iterate id="contract" name="pb" property="resultSet" type="com.pm.model.bo.contract.Contract" indexId="ctr">
      

  7.   

    indexId不影响。<logic:iterate id="borrow" name="items" property="selectItems" >
    <input type="checkbox" name="borrowID" value="<bean:write name='borrow' property='borrowID'/>"/>
    这里错了啊.你既然是定义的borrow 那你后面怎么又是borrowID
    iterate那里定义的id就是你后面要用到的啊
    你好像没弄清楚iterate,一般iterate先用来循环输入一个集合内的元素,type定义元素的类型。。像你怎样定义,就是指items的selectItems是一个集合,我把它定义为borrow。然后下面你就可以用borrow,代表这个集合中的一个元素。
    你后面name="borrowID" 就没有和前面你定义的borrow对应起来啊。还有,如果你把它改为borrow,记得form里面也要修改。
    你最好是先理顺你要显示什么,还有就是去找下iterator的用法。
      

  8.   

    。。
    我看错了。你写的是对的 ,你是后面用到了borrow..
      

  9.   

    ?????到底错哪了呢?没事,有时间时你帮我看一下吧
    感觉checkbox的property和borrowID不是一回事啊,borrowID是他的value,我当初想的是把许多borrowID放进form中的selectItems数组里,然后在action中get出来。
    ?????哪里错了呢?
      

  10.   

    //checkbox
    <logic:present name="upis" scope="request">           
         <logic:iterate id="upi" indexId="pi" name="upis" type="info.kuke.struts.action.upi.form.UpiQueryForm">
                    <tr class="tr-row"> 
                     <td width="5%"><img src="<bean:write name="upi" property="attachpath"/>\<bean:write name="upi" property="attachfile"/>"/>&nbsp;</td>
                      <td width="5%" align="center">
    <input type="checkbox" name="selectPic" value="<bean:write name="upi" property="attachid" filter="true" />"/>
                      </td>
                      <td width="15%"><bean:write name="upi" property="attachfile"/>&nbsp;</td>
                      <td width="15%"><bean:write name="upi" property="attachpath"/>&nbsp;</td>
                    </tr>
    </logic:iterate>
    //form名
    UpiQueryForm
    //action代码
    private ActionForward doQuery(ActionMapping mapping,
    UpiQueryForm form, HttpServletRequest request,
    HttpServletResponse response, CommonDAO dao) throws Exception {
    executeQuery(mapping, form, request, response, mapping
    .findForward("doQuery"), UpiQueryForm.ROLE, dao);
    List query = form.getQueryResult();
    Iterator iter = query.iterator();
    List relist = new LinkedList();
    while (iter.hasNext()) {
    String[] oa = (String[]) iter.next();
    UpiQueryForm uf = new UpiQueryForm();
    uf.setAttachid(oa[0]);
    uf.setAttachfile(oa[1]);
    uf.setAttachpath(oa[2]);
    relist.add(uf);
    }
    request.setAttribute("upis",relist);
    return mapping.findForward("doQuery");
    }
    有问题可以msn加我
      

  11.   

    问题解决了,
    <th><logic:iterate id="borrow" name="items" property="selectItems" >
    <input type="checkbox" name="borrowID" value="<bean:write name='borrow' property='borrowID'/>"/>
    改成
    <th><logic:iterate id="borrow" name="items" property="selectItems" type="xkjs.bean.magbookmanage.BorrowBean">
    就可以了。
    谢谢大家!!!!