在struts框架中經(jīng)常會(huì)碰到多行表單的情況, 如何有效的利用struts框架提供的自動(dòng)收集機(jī)制來處理呢? 這里提供一個(gè)簡(jiǎn)便的方法.
可以用List來解決這個(gè)問題. List中的每一個(gè)元素都是一個(gè)有效的對(duì)象.
例如:
Class ... TestBean ...{
PRivate List test = new ArrayList();
...
...
public Lisg getTest(){....}
}
其中test List中的每一個(gè)元素又是一個(gè)SuBTestBean
Class ... SubTestBean{
private int id;
private String name;
get...(){}
set...(...){}
}
這樣我們?cè)诙x多個(gè)行的時(shí)候便可以如此處理(假設(shè)testbean已經(jīng)放在request中):
這樣信息便會(huì)自動(dòng)顯示, 但是現(xiàn)在還不能夠自動(dòng)收集, 如何才能正確回收呢?
要求在test List 上做一點(diǎn)手腳, 繼續(xù)一個(gè)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 ();
這樣就能自動(dòng)收集了.
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注