У меня есть сценарий followinf:Как показать сообщения об ошибках валидатора пользователю при ошибке проверки?
У меня есть поле с DoubleRangeValidator с указанным сообщением об ошибке field.addValidator (новый DoubleRangeValidator ("Зарплата должна быть числовое значение", 0дн, 1000000d));
Под кнопкой SAVE я называю BeanFieldGroup.commit(), который поднимает исключение о неприменении числового значения в таком поле
Чтобы показать ошибки я использую ErrorUtils класс упоминается здесь Display error messages directly in Vaadin 7
.. который просто вызывает component.getErrorMessage() для всех полей/компонентов и собирает все сообщения об ошибках. Но поле с валидатором DoubleRange возвращает null для getErrorMessage(), поэтому здесь нет сообщения об ошибке. То же самое относится к другим валидаторам. Итак, мой вопрос в том, как я могу показать сообщения об ошибках валидатора, когда ошибка проверки возникает во время commit()?
Спасибо, я узнал, что у меня была field.setValidationVisible (ложь); ... и это привело к тому, что сообщение проверки не было недоступно. Устанавливает значение true для сообщения об ошибке. Но теперь он показывает сообщение по умолчанию «Не удалось преобразовать значение в Double» вместо моего пользовательского текста. –
Да, прежде чем проверять (то есть через «DoubleRangeValidator») значение зарплаты, Vaadin должен сначала преобразовать его в тип свойства (т. Е. «Double»), и именно здесь возникает новая ошибка. Если вы хотите переопределить это, используйте 'field.setConverter()'. Вот пример: https://vaadin.com/forum#!/thread/3625631. – nyg