Struts html:复选框查询

时间:2010-04-20 13:41:00

标签: java struts

我有以下代码:

<td> <html:checkbox name="userForm" property="isActive" /></td>

在表单中我有一个名为isActive的{​​{1}}类型的属性,我如何获得检查值?如果选中,我会收到char之类的符号。

我正在使用userform.getIsActive()。我哪里错了?我想要'y'或'n'值。

3 个答案:

答案 0 :(得分:3)

默认情况下,当提交包含复选框的HTML表单时,如果选中该复选框,则发送的值为字符串“ on ”,如果未选中,则表示没有字段表格数据中的所有复选框。所以你要测试一个值的存在,或者没有一个值。

根据{{3>,使用value属性(对标准HTML标记和Struts html:checkbox标记都有效),您可以更改选中复选框时发送的值}})。如果未选中复选框,则不能使用标准HTML指定应发送值。

我有点困惑你说你得到了“回”。 Struts文档说相应的属性是boolean,而不是String

答案 1 :(得分:1)

如果表单上的isActive属性是char类型,则它只能包含一个字符。也许这就是为什么“on”值在你的情况下被截断为“o”。

无论如何,我建议你在表单上将属性数据类型更改为boolean。这种方式更简单,更合乎逻辑。每当您想要使用表单中的值时,如果您必须以该确切格式获取值,您可以非常轻松地在Java代码中执行(form.getIsActive()?"y":"n")或类似的操作。希望这会有所帮助。

答案 2 :(得分:1)

为了弥补HTML表单复选框的奇怪行为,struts 1.x中的静态表单bean给出了reset方法。

即使在web表单上有复选框,如果表单bean在请求范围内,则表单bean类中不需要reset方法。

如果form-b​​ean在会话范围内(默认情况下)并且其对应的Web表单有复选框,则formbeans中需要重置方法。