在struts中动态添加附件的方法一直是我在寻找的方法,今天终于想明白应该如何操作了,使我最难想不明白的是在jsp页面中如果实现动态的添加几个<input type=file>标签,
具体解决办法如下:
因为如果一添加<input type=file>标签时,对应后台就必需有一个FormFile类型的文件与之对象,所以在初始化的时候,不知道需要几个这样的标签,所以在form中FormFile类型的变量个数也是不确定的,这样我们可以用javascript的方法动态的添加进去,在提交完成后,action中的操作如下
MultipartRequestHandler mrh=form.getMultipartRequestHandler();
Hashtable files = mrh.getFileElements();
Enumeration ee = files.keys();
Enumeration ee = files.keys();
while (ee.hasMoreElements()) {
String fName = (String)ee.nextElement();
FormFile file = (FormFile)files.get(fName);
// 判断添加了几个附件,如果没有则不加入
if(!FormFileUtils.isEmpty(file))continue;
String fName = (String)ee.nextElement();
FormFile file = (FormFile)files.get(fName);
// 判断添加了几个附件,如果没有则不加入
if(!FormFileUtils.isEmpty(file))continue;
}
这样就可以动态的加载多个FormFile类型的文件了