4

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

< 输入类型="文件" 名称="我的文件" />

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

FormFile [] 我的文件;

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

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

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

4

2 回答 2

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 表单中的“捕获”是初始化 FormFile 数组。做这两件事就可以了。请注意对照实际提交的元素数量检查数组的长度,即检查空数组元素。我认为这为根据您的需求调整它提供了一个很好的基准。正如我在问题的最终编辑中所说,对于 < html:text > 或 < input type="text" > 元素,您在表单 bean 中既不需要索引属性也不需要数组初始化。我真的不知道为什么会这样,我在 apache commons 项目的 org.apache.commons.beanutils.PropertyUtilsBean 类中查了一下:有兴趣的人可以看看该类的 set*Property 方法。

于 2009-06-16T16:05:37.503 回答
1

您要查找的内容称为“索引属性”。由于有比我能描述的更好的“方法”,请看这里

于 2009-01-03T21:54:12.753 回答