在struts中用actionForm传递数组

我在action中从数据库取得了所有空间数据的表名,并存入了数组tableName,想用actionForm直接传递到jsp页面上。经过我一下午的努力,终于实现了一个简单的例子。

    1、tableNameForm的定义:

public class tableNameForm extends ActionForm {
    private Integer count;  //表的个数
    private String[] name;  //表名数组
   
    public Integer getCount() {
        return count;
    }

    public void setCount(Integer count) {
        this.count = count;
    }

    public void setName(String[] name) {
        this.name = name;
    }

    public String[] getName() {
        return name;
    }

    public ActionErrors validate(ActionMapping actionMapping,
                                 HttpServletRequest httpServletRequest) {
            /** @todo: finish this method, this is just the skeleton.*/
        return null;
    }

    public void reset(ActionMapping actionMapping,
                      HttpServletRequest servletRequest) {
    }
}

    2、然后在action中,要用setName()对form赋值:

……

String[] tablename = new String[columnCount];  //用数组存放空间数据表的表名,这里的columnCount在此之前从数据库查出来的,表示表的个数

for (int i = 0; i < columnCount; i++) //数组初始化
   tablename[i] = "";

……

while(rs.next()){
   tablename[i++] = rs.getString("TABLENAME").trim();
}

……

tableNameForm.setName(tablename);

……

    3、最后,在jsp页面中显示的时候用到了两个taglib:bean和logic,具体代码断为:

……

        <logic:present name="tableNameForm" property="name">
        空间数据表列:<br />
          <logic:iterate id="tablename" indexId="ind" name="tableNameForm" property="name">
            <bean:write name="ind"/>.<bean:write name="tablename"/><br />
          </logic:iterate>
        </logic:present>
……

    总结:先在form中建立数组属性及其相应的get和set方法,然后在action中对其用set进行赋值,最后就是在jsp中显示出来。<logic:iterate>中的id指定了<bean:write>中要输出的内容,所以这个必须要和<bean:write>中的name属性一致;indexId指定迭代的序号,表示当前是第几条记录;name指定包含了数组的form的名字;property指定需要迭代的form中的数组属性名。

    刚才的jsp片断显示出来的页面效果就是: 

    空间数据表列:

    0.GDS_LANDMK

    1.GDS_ROAD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值