在struts框架中常常会遇到多行表单的情况, 如何有效的利用struts框架提供的自动收集机制来处理呢? 这里提供一个简便的方法. 可以用List来解决这个问题. List中的每一个元素都是一个有效的对象. 例如: Class ... TestBean ...{     private List test = new ArrayList();     ...     ...     public Lisg getTest(){....} } 其中test List中的每一个元素又是一个SubTestBean Class ... SubTestBean{     private int id;     private String name;     get...(){}     set...(...){} } 这样我们在定义多个行的时候便可以如此处理(假设testbean已经放在request中): <logic:iterate id="item" name="testbean" indexId="index"> <html:text property="item.id"/> <html:text property="item.name"/> </logic:iterate> 这样信息便会自动显示, 但是现在还不能够自动收集, 如何才能正确回收呢? 要求在test List 上做一点手脚, 继承一个ArrayList, 覆盖它的get(i)方法 例如:     class TestArrayList extends ArrayList { 
        /*          * (non-Javadoc)          *           * @see java.util.List#get(int)          */         public Object get(int index) {             while (index >= size()) {                 add(new SubTestBean());             }             return super.get(index);         }     } 
然后我们把TestBean中的    private List test = new ArrayList(); 替换为     private List test = new TestArrayList (); 这样就能自动收集了.
   
 
  |