2008-12-16 191 views
4

我想要做的是在一个页面中动态添加HTML输入字段,并且它们中的每一个对应于struts数组属性的元素。比方说,我有一个HTML页面中的数量相同的字段:html表单字段作为struts表单中的数组元素

<输入类型=“文件” NAME =“MYFILE” />

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

FormFile [] myfile;

显然上述不起作用,但我正在寻找如何做一些等价的东西。

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

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

回答

2

OK,这里是一个 “会为我工作” 的解决方案:

首先,在你的HTML/JSP文件的名称属性应该被索引:

文件1:<输入型= “文件” 名称= “MYFILE [0]”/>

文件2:< INPUT TYPE = “文件” 名称= “MYFILE [1]”/>

文件3:< INPUT TYPE =”文件“name =”myfile [2]“/>

struts表单中的“catch”是初始化FormFile数组。做这两件事会做这份工作。只要注意检查数组的长度与实际提交的元素数量,即检查空数组元素。我认为这为调整您的需求提供了一个很好的基准。正如我在我的问题的最终编辑中所说的,对于< html:text>或< input type =“text”>元素,您将不需要表单bean中的索引属性或数组初始化。我真的不知道为什么,我在apache commons项目中的org.apache.commons.beanutils.PropertyUtilsBean类中查找了一下:任何感兴趣的人都可以看看该类的set * Property方法。

+0

atas是对的。你可以找到更多[这里](http://struts.apache.org/1.x/struts-taglib/indexedprops.html) – lbednaszynski 2013-01-09 10:27:24

1

你在找什么叫做“索引属性”。既然有比我更好的“怎么样”,那么看看here

+0

索引属性似乎是一个好方向。我对以数组元素实际提交数据的能力持怀疑态度。我还必须采用struts文档示例才能在代码中工作,而我迄今为止失败了。 – atas 2009-01-07 15:43:52