【问题标题】:Validating double field in struts 2验证struts 2中的双字段
【发布时间】:2011-08-03 20:15:51
【问题描述】:

我在我的一种 struts 2 表单中有一个“长度”字段。 “length”的数据类型是“double”。我在 XML 文件中应用了“双重”验证。但是当我在“长度”文本字段中键入字母时,它会显示错误消息为

Invalid field value for field "length"

我不希望这样显示此消​​息。此消息是由 struts 2 本身生成的,不是我输入的。我想,这个消息是在数据转换失败时出现的。我还应用了“转换”验证器,但仍然出现上述错误消息。请提出解决方案。

提前致谢。

【问题讨论】:

    标签: validation struts2


    【解决方案1】:

    你很幸运。此文本是可自定义的。

    文本在 xwork jar 的 xwork-messages.properties 中定义。您可以通过将以下内容添加到全局 i18n 资源包来覆盖它:

    xwork.default.invalid.fieldvalue=Invalid field value for field "{0}".
    

    如您所料,所有类型转换失败都会出现此错误消息。 XWorkConverter 类对此有一些有用的 javadoc:

    在类型转换期间发生的任何错误可能会或可能不会被报告。例如,报告输入“abc”无法转换为数字可能很重要。另一方面,报告空字符串“”不能转换为数字可能并不重要——尤其是在难以区分用户未输入值与输入空白值的 Web 环境中。

    默认情况下,使用通用 i18n 键 xwork.default.invalid.fieldvalue 报告所有转换错误,您可以覆盖该键(默认文本是 Invalid field value for field "xxx ",其中 xxx 是字段名称)在您的全局 i18n 资源包中。

    但是,有时您可能希望逐个字段覆盖此消息。您可以通过使用 invalid.fieldvalue.xxx 模式添加仅与您的操作 (Action.properties) 关联的 i18n 键来执行此操作,其中 xxx 是字段名称。

    重要的是要知道实际上没有直接报告这些错误。相反,它们被添加到 ActionContext 中名为 conversionErrors 的映射中。然后可以通过多种方式访问​​此地图并相应地报告错误。

    【讨论】:

    • 感谢您的准确回答。它解决了我的问题,也增加了一些知识。
    【解决方案2】:

    试试这个,

    <field name="percentage">
        <field-validator type="double">
            <param name="minExclusiveExpression">${minExclusiveValue}</param>
            <param name="maxExclusiveExpression">${maxExclusiveValue}</param>
            <message>Percentage needs to be between ${minExclusive} and ${maxExclusive} (exclusive)</message>
        </field-validator>
    </field>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多