如何从 Wicket 7 中的 IValidatable 获取标签
How to get Label from IValidatable in Wicket 7
是否可以在验证中获取我的组件的标签?在我的验证中,我需要此标签作为自定义错误消息。看起来像:
"The value may not be less than {0}."
如果我的组件有标签,那么我想在之前写它:
"LabelName: The value may no be less than {0}."
我的组件 BigDecimalValidator 不知道 BigDecimalTextfield.
tfiGV = new BigDecimalTextField("tfiGV", new Model<BigDecimal>());
tfiGV.setLabel(Model.of(Const_Labels.GV));
tfiGV.add(BigDecimalValidator.minimum(0));
BigDecimalValidator 的验证表无法达到必要的标签。
@Override
public void validate(IValidatable<BigDecimal> validatable) {
// Doesn't work ((FormComponent<BigDecimal>) validatable).getLabel();
if (((BigDecimal) validatable.getValue()).compareTo(BigDecimal.valueOf(minimum, 3)) == -1) {
ValidationError valError = new ValidationError();
valError.setMessage(getErrorMessageMin(minimum));
validatable.error(valError);
}
}
我知道 BigDecimalValidator 的构造函数可以访问标签,但这不是一个好的解决方案。
您可以在 i18n 消息中使用 {label}
,Wicket 会将其替换为表单组件的标签。
例如{label}: The value may not be less than {0}.
是否可以在验证中获取我的组件的标签?在我的验证中,我需要此标签作为自定义错误消息。看起来像:
"The value may not be less than {0}."
如果我的组件有标签,那么我想在之前写它:
"LabelName: The value may no be less than {0}."
我的组件 BigDecimalValidator 不知道 BigDecimalTextfield.
tfiGV = new BigDecimalTextField("tfiGV", new Model<BigDecimal>());
tfiGV.setLabel(Model.of(Const_Labels.GV));
tfiGV.add(BigDecimalValidator.minimum(0));
BigDecimalValidator 的验证表无法达到必要的标签。
@Override
public void validate(IValidatable<BigDecimal> validatable) {
// Doesn't work ((FormComponent<BigDecimal>) validatable).getLabel();
if (((BigDecimal) validatable.getValue()).compareTo(BigDecimal.valueOf(minimum, 3)) == -1) {
ValidationError valError = new ValidationError();
valError.setMessage(getErrorMessageMin(minimum));
validatable.error(valError);
}
}
我知道 BigDecimalValidator 的构造函数可以访问标签,但这不是一个好的解决方案。
您可以在 i18n 消息中使用 {label}
,Wicket 会将其替换为表单组件的标签。
例如{label}: The value may not be less than {0}.