wicket 6 自定义错误消息而不是 The value of x is not a valid int

wicket 6 custom error message instead of The value of x is not a valid int

我正在使用 Wicket 6,我想为特定组件 (TextField) 添加自定义错误消息。

此字段只能接受特定值 (0-59) 内的数字。此验证非常有效。但是,当用户输入非数字时...似乎 return 默认验证错误消息。像 The value of x is not a valid int.

下面是当输入值大于 59 或小于零时我如何设置 validation/error 消息的示例代码:

    ...

    form.add(new ReportErrorControlGroup("minutesLateGroup", new TextField("minutesLate",
            new PropertyModel<String>(m_attendanceInfo, "minutesLate")).setRequired(false).add(new IValidator<Integer>() {
        private static final long serialVersionUID = 1L;

        @Override
        public void validate(IValidatable<Integer> validatable) {
            Integer input = validatable.getValue();
            if (input < 0 || input >= 60) {
                validatable.error(new ValidationError("Please enter a valid minute(s) value, a value between 0 to 59."));
            }
        }
    })));

    ...

当用户输入非数字值时,会return一条validation/error消息The value of 'minutesLate' is not a valid int.

我想要的是用 Please enter valid minute value. 之类的东西替换这个错误,并且只应用于 minutesLate

在我的其他项目中,我可以通过 messages.properties 设置它,然后像 field.error.incorrect.expected.values={0} is not a valid value.

但是这个项目是 Apache Wicket 6,我不知道如何 setup/configure messages.properties 以及如何使用验证失败时显示的特定消息。

我正在考虑使用 minutesLate.value.invalid=Please enter valid minute value.

如何让它看到添加的 messages.properties 并使用 minutesLate.value.invalid 作为无效(非数字)值。

默认消息定义在 https://github.com/apache/wicket/blob/c6fde82ce9637c43753b59620b2f5551ad7f20fe/wicket-core/src/main/java/org/apache/wicket/Application.properties#L16

因此,您需要在 MyApplication.properties 中覆盖它(必须在 MyApplication.class 旁边)

minutesLate.IConverter=Please enter valid minute value.