Это не связано с обработчиком событий, оно вызвано отсутствием типа модели, установленного в вашем компоненте.
Компоненты формы могут получать тип модели из 3 источников:
- Разрешите его автоматически, если вы используете
PropertyModel
или CompoundPropertyModel
. - Примите его в качестве дополнительного параметра конструктора.
- С помощью метода
setType()
. - (Если ничего из вышеперечисленного не применимо, по умолчанию используется строковое или логическое значение для флажков.)
Это ваши варианты, вы можете выбрать любой из трех, но я думаю,1 лучше, чем 2, что лучше, чем 3.
Обновление: Вы, вероятно, уже знаете это, но если ваш пользовательский класс действительно пользовательский, вам также понадобится IConverter
, которыйобрабатывает преобразования String <-> Someclass: вы можете либо зарегистрировать его в приложении, либо переопределить метод getConverter(Class<?> clazz )
вашего компонента, чтобы вернуть его.