Как получить мой валидатор, чтобы поднять ошибку при нулевом значении? Я могу видеть в моих журналах, что, когда я пытаюсь отправить пустое поле, он вызывает валидатор, но он никогда не вызывает onError, поэтому я не могу справиться с этим. Я хочу отобразить сообщение об ошибке в панели обратной связи, когда кто-то пытается отправить пустое поле вместо того, чтобы делать чек в onSubmit моей формы.Валидатор калитки не вызывает ошибку при нулевом значении поля
@Override
protected void onValidate(IValidatable<String> validatable) {
String value = validatable.getValue();
if (value == null) {
ValidationError error = new ValidationError();
error.addMessageKey("messageKey");
validatable.error(error);
}
}
@Override
public void validateOnNullValue() {
return true;
}
Редактировать
Если выше не так легко возможно, есть способ, что я могу легко зарегистрировать сообщение об ошибке с панели обратной связи, когда component.setRequired
верно и форма представляется с пустой поле? Я просто не хочу, чтобы не было обратной связи с пользователем, когда они пытались отправить форму с пустым полем, но я также не хочу иметь логику для этого в обработчике onSubmit.
редактировать 2 НЕКОТОРЫХ больше контекста
Вот два из полей Я пытаюсь проверить:
final TextField<String> currentLpnField = new TextField<String>("currentLpn", Model.of(""));
currentLpnField.setOutputMarkupId(true);
currentLpnField.setRequired(true);
currentLpnField.add(new BarcodeLPNValidator());
final TextField<String> upcField = new TextField<String>("upc", new Model<String>());
upcField.setOutputMarkupId(true);
upcField.setRequired(true);
upcField.add(new BarcodeUPCValidator());
Вот что в моих свойствах файла:
upc.null=UPC cannot be null
upc.Required=UPC is required
currentLpn.null=LPN cannot be null
currentLpn.Required=LPN is required
Я получаю сообщение * .Required только после того, как я ввел информацию в поле, проверил его, а затем удалю и повторю проверку. Если я просто загружу форму и отправлю ее, даже не введя никаких данных, я ничего не получаю.
Почему вы не задали поле 'setRequired()'? –
Как отобразить сообщение об ошибке в панели обратной связи? Я понимаю, что с setRequired = true валидаторы даже не будут выполняться, если поле пусто. – alexD
setRequired препятствует отправке формы, если поле пусто, но оно все еще не отображает сообщение об ошибке до тех пор, пока некоторые данные не будут введены и не будут удалены. – alexD