struts 批量封装数据

Struts 的批量封装有几种方法:

1、  form 来封装

2、  用动态form

3、  用隐藏域

 

这里主要介绍用动态form 来进行封装

1步:在struts.xml中写actionform写映射

 <form-bean name="dynaTravelForm" type="org.apache.struts.validator.DynaValidatorForm">
		    <form-property name="saction" type="java.lang.String"></form-property>
		  	<form-property name ="resourceNotices" 
                type ="com.bsteel.baointl.baotong.contract.form.BtTravelResourceForm"/>
		</form-bean>

 

 

2步:写相关的form 类

  

//BtTravelResourceForm  类
public class BtTravelResourceForm {
	private static final long serialVersionUID = 1L;
	private int id ;
                //相关的javaBean内的一些集合
	private List traveResources = new AutoInitArrayList(BtTravelResource.class);
	private String saction;
}

//AutoInitArrayList 类
public class AutoInitArrayList extends LinkedList{
	private static final long serialVersionUID = 1L;
	/** 容器内保存的类 */
    private Class clazz; 
    /**私有构造函数,保证外界无法直接实例化*/
    private AutoInitArrayList() {
    }
    public AutoInitArrayList(Class clazz) {
        this.clazz = clazz;
}

 

3步:在Action类获得封装的对象

 

protected ActionForward execute(ActionContext context) throws Exception {
		
		DynaValidatorForm frm = (DynaValidatorForm) context.getForm();
BtTravelResourceForm btf=(BtTravelResourceForm)frm.get("resourceNotices");
List list = btf.getTraveResources();  //获得所有页面上的对象

 

4步:在页面上写映封装数据时的映射

<%
     int i = 0;
    for (int j =0;j<10;j++){
%>
  <tr align="center">
       <td><%=++i %></td>
        <td><INPUT type="text"  
//注意name 的命名
name="resourceNotices.traveResources[<%=i-1 %>].client" value="" size="8" /></td>
  .......
</tr>

 

二、 form 的方法 就继承ActionForm,form 中定义Model类的集合,然后在页面上定义即可

 

三、用隐藏域的方法 ,在每个要封装的对象面前,放一个隐藏域,一个隐藏域,封装一个对象,把它的属性用字符串连接,存储到隐藏域的值中,然后再把隐藏域中的值拿出来

getparamsNames 拿出隐藏集合,再用字符串分割来获取每个属性

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值