У меня есть календарь простых лиц с прикрепленным к нему валидатором.
<p:calendar id="validationTriggeringCalendar"
label="other calendar"
value="#{myBean.otherDate}"
navigator="true"
locale="de"
pattern="dd.MM.yyyy"
showOn="button"
renderAsPopup="true"
required="true"
size="12">
<f:validator validatorId="packagename.DateFromToValidator" />
</p:calendar>
<p:calendar id="myCalendar"
label="Some Date"
value="#{myBean.someDate}"
navigator="true"
effect=""
locale="de"
pattern="dd.MM.yyyy"
showOn="button"
renderAsPopup="true"
mindate="#{myBean.mindate}"
size="12">
</p:calendar>
Внутри валидатора я получаю компонент пользовательского интерфейса календаря myCalendar
(тот, который не вызвал валидацию) и вызываю метод getValue()
, который не возвращает введенное в него значение.
Я отладил код валидатора, введя дату «10.10.2009»:
UIInput calendar = getMeTheCalendar();
Date date = (Date) calendar.getValue();
Мой отладчик даже сообщает мне, что значение submittedValue
атрибута calendar
равно «10.10.2009», именно то, что я ввел и что отображается в моем браузере. Но метод getValue()
возвращает объект даты Thu Oct 10 00:00:00 CEST 2019
.
Как получить введенное значение компонента?
Я использую Primefaces 5.3.1, кстати.