我想要做的是在一个页面中动态添加HTML输入字段,每个字段对应一个struts数组属性的元素。假设我在HTML页面中有许多相同的字段:
< input type =“file”name =“myfile”/>
并且在提交表单时,我希望每个字段对应于struts表单bean中FormFile数组中的元素:
FormFile [] myfile;
显然上面的方法不起作用,但我正在寻找如何做同等事情。
编辑:以上内容不适用于仅上传文件和FormFile类型。
否则,直观地将数组元素映射到input元素或html:text元素实例。那么,为了使我的问题更具体,为什么我不能使用struts上传一个文件数组?
答案 0 :(得分:2)
好的,这是“对我有用”的解决方案:
首先,在你的html / jsp文件中,name属性应该编入索引:
文件1:< input type =“file”name =“myfile [0]”/>
文件2:< input type =“file”name =“myfile [1]”/>
文件3:< input type =“file”name =“myfile [2]”/>
struts表单中的“catch”是初始化FormFile数组。做这两件事就可以了。请注意根据实际提交的元素数检查数组的长度,即检查空数组元素。我认为这为根据您的需求调整它提供了一个很好的基线。正如我在我的问题的最后编辑中所说,对于< html:text>或者< input type =“text”>在表单bean中既不需要索引属性也不需要数组初始化。我真的不知道它为什么,我在apache commons项目中的org.apache.commons.beanutils.PropertyUtilsBean类中查了一下:有兴趣的人可以看一下该类的set * Property方法。
答案 1 :(得分:1)
您正在寻找的是“索引属性”。由于有比我描述的更好的“怎么样”,请看一下here。