【发布时间】:2013-08-15 16:39:41
【问题描述】:
我想验证是否选中了 Struts2 复选框(布尔属性),但此时验证总是失败。这是我所拥有的:
<s:checkbox key="agreetc" fieldValue="agreedtc"
label="I have read and agree to the terms and conditions"/>
<field name="agreetc">
<field-validator type="fieldexpression">
<param name="expression">agreetc == true</param>
<message>You must agree to the terms and conditions</message>
</field-validator>
</field>
动作中agreetc 的值始终为false,因为该字段的设置器永远不会被调用。如果我添加一个名为 test 的字符串,带有一个 getter/setter 和一个 s:textfield
然后选择该值,但在此操作中我无法从s:radio、s:select 或s:checkbox 获取值。我使用s:radio 和s:select 成功完成的其他操作。
有人有什么想法吗?
【问题讨论】:
-
我觉得很好。失败是什么意思?总是对或错或其他......?
-
我对此进行了更多研究,似乎 Struts2 根本没有收到任何复选框的值 - 它始终为 null,这就是验证失败的原因。在行动中我有'私人布尔同意;'用它的 getter 和 setter。该操作会毫无问题地拾取其他几个表单字段,但不是协议字段。
-
对不起,一直是
false,请忽略我之前的评论。 -
Doahh,不要在 cmets 中发布代码,而是编辑您的问题并添加详细信息。
标签: validation checkbox struts2