struts1.x 中提交form[]表單數組以及後台解析

來源:互聯網
上載者:User

entity中這樣寫:

private String xxx; //setXxx、getXxx方法

...

form中可以這樣寫:

private String[] xxx; //setXxx、getXxx方法

...

提交到後台之後這樣解析:

public static synchronized Collection getCollection(HttpServletRequest parameters,      Class entity) throws      InvocationTargetException,      InstantiationException,      IllegalAccessException {    Object dto = entity.newInstance();    PropertyDescriptor origDescriptors[] = PropertyUtils.getPropertyDescriptors(dto);    String propName = null;        int length = 0;        String[] tmp = null;        for(int i = 0; i < origDescriptors.length; i++){          propName = origDescriptors[i].getName();          //屬性不能是class          if(!"class".equals(propName)){            tmp = parameters.getParameterValues(propName);            if(null != tmp){              length = tmp.length;              break;            }          }        }    Collection result = new ArrayList();    for (int j = 0; j < length; j++) {      Object item = entity.newInstance();      for (int i = 0; i < origDescriptors.length; i++) {        if (origDescriptors[i].getReadMethod() == null) {          if (log.isTraceEnabled()) {            log.trace("-->No getter on JavaBean for " + origDescriptors[i].getName() + ", skipping");          }          continue;        }        String name = origDescriptors[i].getName();        if ("class".equals(name)) {          continue; // No point in trying to set an object's class        }            Object value = null;            tmp =  parameters.getParameterValues(name);            if(null != tmp)              value = tmp[j];            BeanUtils.copyProperty(item, name, value);      }      result.add(item);    }    return result;  }

然後根據產生的集合進行後台資料處理即可。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.