Struts1.2中actionForm使用索引:ArrayList改用HashMap,避免错乱顺序

本文介绍了如何在Struts框架中使用HashMap替代数组和ArrayList来处理多个相同名称字段的提交,如电话号码,并展示了具体的JSP页面及ActionForm类实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看了郭克华老师的视频.

在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()));
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值