struts框架中实现多行表单提交

在struts框架中常常会遇到多行表单的情况, 如何有效的利用struts框架提供的自动收集机制来处理呢? 这里提供一个简便的方法.

可以用List来解决这个问题. List中的每一个元素都是一个有效的对象.

例如:

Class ... TestBean ...{<br />private List test = new ArrayList();<br />...<br />...<br />public Lisg getTest(){....}<br />}<br />其中test List中的每一个元素又是一个SubTestBean<br />Class ... SubTestBean{<br />private int id;<br />private String name;<br />get...(){}<br />set...(...){}<br />}

这样我们在定义多个行的时候便可以如此处理(假设testbean已经放在request中):

这样信息便会自动显示, 但是现在还不能够自动收集, 如何才能正确回收呢?

要求在test List 上做一点手脚, 继承一个ArrayList, 覆盖它的get(i)方法

例如:

class TestArrayList extends ArrayList {<br />/*<br />* (non-Javadoc)<br />*<br />* @see java.util.List#get(int)<br />*/<br />public Object get(int index) {<br />while (index >= size()) {<br />add(new SubTestBean());<br />}<br />return super.get(index);<br />}<br />}

然后我们把TestBean中的 private List test = new ArrayList();

替换为 private List test = new TestArrayList ();

这样就能自动收集了.

一个人目睹沿途的风景,拿着相机,拍下沿途上的风景,

struts框架中实现多行表单提交

相关文章:

你感兴趣的文章:

标签云: