java Struts html:复选框查询
我有以下代码:
<td> <html:checkbox name="userForm" property="isActive" /></td>
在形式中,我有一个名为isActive
的属性,类型为char
,我如何获得选中的值?如果选中,我会得到一些类似o
的符号
我正在使用userform。getIsActive()。我哪里做错了?我想要“y”或“n”值
你可以在下面搜索框中键入要查询的问题!
我有以下代码:
<td> <html:checkbox name="userForm" property="isActive" /></td>
在形式中,我有一个名为isActive
的属性,类型为char
,我如何获得选中的值?如果选中,我会得到一些类似o
的符号
我正在使用userform。getIsActive()。我哪里做错了?我想要“y”或“n”值
# 1 楼答案
如果窗体上的isActive属性的类型为char,则它只能包含一个字符。也许这就是为什么在您的例子中“on”值被截断为“o”的原因
无论如何,我建议您将表单上的属性数据类型更改为boolean。这样更容易,也更符合逻辑。每当你想使用表单中的值时,你可以很容易地在Java代码中执行
(form.getIsActive()?"y":"n")
或类似的操作,如果你必须获得精确格式的值。希望这有帮助# 2 楼答案
为了弥补HTML表单复选框的奇怪行为,struts 1中给出了静态表单bean的重置方法。x
即使web表单上有复选框,如果表单bean在请求范围内,也不需要表单bean类中的重置方法
如果FormBean在会话范围内(默认情况下),并且其对应的web表单具有复选框,则FormBean中需要重置方法
# 3 楼答案
默认情况下,当提交包含复选框的HTML表单时,如果选中复选框,则发送的值是字符串“on”,如果未选中,则表单数据中根本没有该复选框的字段。所以你要测试一个值的存在,或者一个值的缺失
您可以通过使用
value
属性(根据Struts docs,该属性既适用于标准HTML标记,也适用于Strutshtml:checkbox
标记)来更改选中复选框时发送的值。对于标准HTML,不能指定如果未选中复选框,则应发送值我对你说你要回“o”感到有点困惑。Struts文档称相应的属性将是
boolean
,而不是String