2008-12-16 166 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