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