Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
struts框架中多行表单提交

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

在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 ();
这样就能自动收集了.




相关文章

相关软件