Struts详解之-ActionForm 集合表单提交

Share

      在日常的开发当中,偶尔会碰到如下的情况:
      在一个html页面的form里面,要提交的表单元素是从数据库迭代出来的,即不能确定其名字和长度。
      这样一来,写formbean的时候(struts 1),就不能确定属性了。其实,struts也提供了处理此类问题的方法,即数据的集合方式提交。我们可以在給表单元素命名的时候,用下面的方式命名:
对象名(属性名)  HashMap或者是自己定义的javabean
列表名(索引)  ArrayList
      案例:有一个用户表,需要在页面上对他进行迭代显示,然后逐个命名。

在页面的显示:

	<input name="name[0]" type="text" />
	
	<input name="name[1]" type="text" />
	
	<input name="name[2]" type="text" />
	
	

或者(对象型)

	<input name="name(0)" type="text" />
	
	<input name="name(1)" type="text" />
	
	<input name="name(2)" type="text" />
	
	

FormBean

public class ProductForm extends ActionForm{
	
	private String[] Name=new String[3];
	public void setName(int index, String value){
	shops Name[index]=value;
	}
	public String getName(int index){
	return (name[index]);
	}
	...
	}

或者是:

import java.util.Map;
	import java.util.HashMap;
	public class ProductForm extends ActionForm{
	...
	private Map name=new HashMap();
	
	public void setName(String key, String value){
	name.put(key, value);
	}
	public String getName(String key){
	return ((String)name.get(key));
	}
	public void setName(Map tel){
	this.name=name;
	}
	public Map getName(){
	return (name);
	}
	...
	}

这样,就可以对应好关系了,而且,读取的时候,既可以读取相对应的对象,也可以获取属性值。