В моем приложении maven-wicket (6.10) у меня есть TextField, который имеет модель свойства Integer. Я хочу установить максимальную длину для ввода чисел в этот TextField. (Например, пользователь должен написать максимум 2 символа в «возрасте» текстовое поле)Как проверить формат чисел TextField в калитки?
Я попробовал этот код:
add(new TextField<>("age",new PropertyModel<(personModel,"age"))
.add(StringValidator.maximumLength(2)));
//age is an Integer value from a Person class, personModel is "IModel<Person>" type
, но я получил это исключение:
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String
at org.apache.wicket.validation.validator.StringValidator.getValue(StringValidator.java:87)
at org.apache.wicket.validation.validator.StringValidator.getValue(StringValidator.java:59)
at org.apache.wicket.validation.validator.AbstractRangeValidator.validate(AbstractRangeValidator.java:107)
at org.apache.wicket.markup.html.form.FormComponent.validateValidators(FormComponent.java:1523)
Так что если модель свойства не является строковым типом, я не могу использовать StringValidator. Я нашел примеры, которые используют NumberValidator (validators), но я не могу разрешить NumberValidator. У меня есть только эти валидаторы в источнике: Как я могу использовать валидатор чисел? Или я что-то упускаю, возможно, формирует зависимости pom.xml для калитки?
NumberTextField не вариант? – Gimby