html表单字段作为struts形式的数组元素

时间:2008-12-16 10:37:06

标签: jsp struts

我想要做的是在一个页面中动态添加HTML输入字段,每个字段对应一个struts数组属性的元素。假设我在HTML页面中有许多相同的字段:

  

< input type =“file”name =“myfile”/>

并且在提交表单时,我希望每个字段对应于struts表单bean中FormFile数组中的元素:

  

FormFile [] myfile;

显然上面的方法不起作用,但我正在寻找如何做同等事情。

编辑:以上内容不适用于仅上传文件和FormFile类型。

否则,直观地将数组元素映射到input元素或html:text元素实例。那么,为了使我的问题更具体,为什么我不能使用struts上传一个文件数组?

2 个答案:

答案 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