1

我想验证是否选中了 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:radios:selects:checkboxs:radios:select

有没有人有任何想法?

4

1 回答 1

1

如果您想从fieldValue属性接收值作为字符串,则使您的agreedtc变量字符串类型不是布尔值。那么您现在的验证应该可以工作。

但是,如果您希望它在您的操作类中成为布尔值,fieldValue则从标记中删除该属性<s:checkbox>并将您的验证表达式更改为:

<field name="agreetc">
    <field-validator type="fieldexpression">
        <param name="expression">agreetc</param>
        <message>You must agree to the terms and conditions</message>
    </field-validator>
</field>
于 2013-08-15T17:52:24.623 回答