有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Struts html:复选框查询

我有以下代码:

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

在形式中,我有一个名为isActive的属性,类型为char,我如何获得选中的值?如果选中,我会得到一些类似o的符号

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


共 (3) 个答案

  1. # 1 楼答案

    如果窗体上的isActive属性的类型为char,则它只能包含一个字符。也许这就是为什么在您的例子中“on”值被截断为“o”的原因

    无论如何,我建议您将表单上的属性数据类型更改为boolean。这样更容易,也更符合逻辑。每当你想使用表单中的值时,你可以很容易地在Java代码中执行(form.getIsActive()?"y":"n")或类似的操作,如果你必须获得精确格式的值。希望这有帮助

  2. # 2 楼答案

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

    即使web表单上有复选框,如果表单bean在请求范围内,也不需要表单bean类中的重置方法

    如果FormBean在会话范围内(默认情况下),并且其对应的web表单具有复选框,则FormBean中需要重置方法

  3. # 3 楼答案

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

    您可以通过使用value属性(根据Struts docs,该属性既适用于标准HTML标记,也适用于Struts html:checkbox标记)来更改选中复选框时发送的值。对于标准HTML,不能指定如果未选中复选框,则应发送值

    我对你说你要回“o”感到有点困惑。Struts文档称相应的属性将是boolean,而不是String