JSP文件中相关代码片段如下: <logic:iterate id="record" name="result" indexId="ind" > <tr> <td width="10%" align="center" valign="middle"> <input type="checkbox" name="ids" id="ids" value="<bean:write name="record" property="messId"/>"/> </td> </tr> </logic:iterate> form表单提交时调用如下方法 function batchResendMsg(formTag){ var obj = formTag.ids; var len = obj.length; var flag = false; for (var i = 0; i < len; i++){ if(obj[i].checked == true){ flag = true; } } if(!flag){ alert("请至少选中一项发送记录,或者通过点击查看记录后发送!"); return false; } formTag.action = "batchResendMsg.do"; alert("aaa"); document.getElementById("method").value = "batchResendMsg"; return true; } ids在form中的定义如下: <form-bean name="batchResendMsgForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="method" type="java.lang.String"/> <form-property name="itemMessId" type="java.lang.String"/> <form-property name="ids" type="java.lang.String[]"/> <form-property name="msgType" type="java.lang.String"/> </form-bean> 如果从数据库查询中返回一条记录的话,则formTag.ids为undefined,formTag.ids.length为0,但如果多于一条的话是没有问题的,据我猜测,一条记录的话ids体现为一个字符串,而不是字符串数组,因此forms中定义的ids数组在此种情况下是null