使用struts 1.X的表单中的可变数量的字段

时间:2010-10-13 14:15:42

标签: struts

我需要构建一个加载表的表单,每个表中包含一个复选框和一个输入文本(行数是可变的,因为它是从db加载的)。所以我的问题是:

  1. 员工formbean应该有哪些字段? ArrayLists?一个HashMap?
  2. 我如何知道(提交表单后)选中了哪个复选框,以便我考虑相应的输入文本?
  3. 我使用struts 1.X作为框架。

    提前致谢!

1 个答案:

答案 0 :(得分:1)

就个人而言,我会使用数组(列表)作为复选框,并使用输入文本的地图。如果未选中复选框,则必须考虑复选框未在请求中发送,但始终会发送所有输入文本。因此,将复选框的值与输入文本的map参数匹配,如:

<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