在日常的开发当中,偶尔会碰到如下的情况:
在一个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); } ... }
这样,就可以对应好关系了,而且,读取的时候,既可以读取相对应的对象,也可以获取属性值。