У меня есть форма в tml-файле компонента Гобелена.Подготовьтесь к отправке события, не названного в Гобелен
...
<t:form t:id="searchForm" clientValidation="none">
....
<t:select t:id="globalSport" model="globalSportModel" value="formData.globalSportId" blankOption="never"/>
....
</t:form>
..
А вот важная часть соответствующего файла Java:
...
@Property(read = true, write = false)
private ServiceSearchFormData formData;
...
@OnEvent(value = EventConstants.PREPARE_FOR_SUBMIT, component = "searchForm")
void prepareForSubmit()
{
formData = new ServiceSearchFormData();
}
...
Это, кажется, довольно просто. ServiceSearchFormData
- это DTO с несколькими атрибутами и методами getter/setter. Он инкапсулирует данные, представленные в форме. Экземпляр создается при событии «подготовиться к отправке». ... и он отлично работает.
Однако исключение иногда возникает в производственной среде. Я не могу воспроизвести его. Это происходит в рамках запроса POST, который передает данные в эту форму. В сообщении об ошибке указано:
Ошибка ввода параметра «значение» компонента MyPortal: portalindex.portalsearchform.globalsport: свойство 'formData' (в выражении свойства 'formData.globalSportId', из cz.ftm.fitsoftware.webapp.components. PortalSearchForm @ 3262579e) - null.
Как это возможно? Как может свойство formData
быть неинициализированным? Может ли это редкое (но регулярное) исключение быть вызвано неправильным значением параметра t:formdata
запроса POST?
Спасибо за любую помощь.