2010-10-13 63 views
0

我需要建立一個窗體,加載一個表,每一行中包含一個複選框和一個輸入文本(行數是可變的,因爲它是從一個數據庫加載) 。所以我的問題是:可變數量的字段在窗體中使用struts 1.X

  1. 員工formbean應該有哪些字段? ArrayLists?一個HashMap?
  2. 我怎麼知道(一旦表單被提交)選擇了什麼複選框,所以我認爲相應的輸入文本?

我正在使用struts 1.X作爲框架。

在此先感謝!

回答

1

就個人而言,我會使用複選框的數組(列表)和輸入文本的地圖。您必須考慮這樣一個事實,即如果未選中複選框,則不會在請求上發送複選框,但始終發送所有輸入文本。因此,與輸入文本的地圖參數匹配複選框的值,是這樣的:

<input type="checkbox" name="ckName" value="val1" ../> 
<input type="text" name="mapMethod(val1)" ../> 

<input type="checkbox" name="ckName" value="val2" ../> 
<input type="text" name="mapMethod(val2)" ../> 

<input type="checkbox" name="ckName" value="val3" ../> 
<input type="text" name="mapMethod(val3)" ../> 

... 

這意味着你將永遠有一個地圖的所有值:

val1 = "textbox 1 value" 
val2 = "textbox 2 value" 
val3 = "textbox 3 value" 
... 

,也有選中的複選框列表可以是:

[val1] 
[val1, val2] 
[val1, val2, val3] 
... different combinations or [] 

然後,您只保留在複選框值列表中找到的鍵的映射文本框值。

P.S.還請記住reset your checkboxes