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

发布于 2024-09-27 10:46:03 字数 219 浏览 0 评论 0原文

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

  1. 关联 formbean 应该有哪些字段?数组列表?一个 HashMap ?
  2. 我如何知道(提交表单后)选择了哪个复选框,以便我考虑相应的输入文本?

我使用 struts 1.X 作为框架。

提前致谢!

I need to build a form that loads a table that in each row contains a checkbox and an input text (the number of rows is variable, because it's loaded from a db). So my questions are:

  1. What fields should the associate formbean have ? ArrayLists ? One HashMap ?
  2. How can I know (once the form is submitted) what checkbox was selected so I consider the corresponding input text ?

I'm using struts 1.X as framework.

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

魂牵梦绕锁你心扉 2024-10-04 10:46:03

就我个人而言,我会使用数组(列表)作为复选框,使用映射作为输入文本。您必须考虑这样一个事实:如果未选中复选框,则不会根据请求发送复选框,但始终会发送所有输入文本。因此,将复选框的值与输入文本的地图参数进行匹配,如下所示:

<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 []

然后保留文本框值仅从映射中查找在复选框值列表中找到的键。

PS 还要记住重置您的复选框

Personally, I would use an array (list) for the checkboxes and a map for the input texts. You have to consider the fact that checkboxes are not sent on the request if they are not selected, but all your input texts are always sent. So, match the value of a checkbox with the map parameter of an input text, something like:

<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)" ../>

...

This means you will always have a map with all values:

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

and also have a list of selected checkboxes which can be:

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

You then keep the textbox values from the map only for the keys that are found in your list of checkbox values.

P.S. Remember also to reset your checkboxes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文