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
struts配置文件中的form定义中使用string[]的一点疑问
最新推荐文章于 2026-06-27 09:17:25 发布
本文探讨了在Struts框架中实现批量消息重发功能时遇到的问题,特别是在处理单条记录时表单元素ids的类型不匹配导致的错误。

1184

被折叠的 条评论
为什么被折叠?



