看了郭克华老师的视频.
在actionForm中使用索引,可以保存相同名称的多个信息(例子中保存3个phone)
使用数组时 需要知道数量多少
使用ArrayList 时,提交后保存顺序会乱
下面是我改ArrayList用HashMap实现,避免了前两个不足之处。关键代码如下:
jsp:
<html:form action="/user">
电话号码1:<html:text property="phone[0]"></html:text><BR>
电话号码2:<html:text property="phone[1]"></html:text><BR>
电话号码3:<html:text property="phone[2]"></html:text><BR>
<html:submit/><html:cancel/>
</html:form>
actionForm:
private HashMap phones = new HashMap();
public void setPhone(int i,String phone){
phones.put(i, phone);
}
public String getPhone(int i){
if(phones.containsKey(i))
return (String) phones.get(i);
else
return null;
}
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
// TODO Auto-generated method stub
return null;
}
public HashMap getPhones(){
return phones;
}
action中打印显示:
UserForm userForm = (UserForm) form;// TODO Auto-generated method stub
HashMap phones = userForm.getPhones();
Set keyes = phones.keySet();
Iterator it = keyes.iterator();
while(it.hasNext()){
System.out.println(phones.get(it.next()));
}