Кто-нибудь знает, как компонент <ice:selectInputDate>
может быть отображен в поле java.util.Calendar
, а не java.util.Date
?
Я использую с IceFaces версия 1.8.2, компонент <ice:selectInputDate>
. Этот компонент должен быть связан с java.util.Date
proeprty. Например, value="#{bean.myDate}"
, поле myDate
должно иметь тип java.util.Date
. Но мне нужно, чтобы мое поле даты было типа java.util.Calendar
.
Мои испытания: я пытался использовать стандартный или пользовательский конвертер:
Стандартный: <f:convertDateTime pattern="dd/MM/yyyy" />
форматирует правильное значение в графическом интерфейсе, но при установке его для свойства bean.myDate
типа Calendar
появляется следующее сообщение об ошибке:
[03.05.10 12: 09: 18: 398 EEST] 00000021
жизненный цикл I ПРЕДУПРЕЖДЕНИЕ: FacesMessage (s)
был поставлен в очередь, но может не иметь
был отображен.
sourceId = j_id12: j_id189: myDate [серьезность = (ОШИБКА 2),
summary = (/ WEB-INF / xhtml ............ file.xhtml @ 507,51 value = "# {bean.myDate}": невозможно
установить свойство 'myDate' для класса 'bean'
оценивать '5/11/10 3:00 AM'.),
деталь = (/ WEB-INF / XHTML ........ file.xhtml
@ 507,51 value = "# {bean.myDate}": не могу
установить свойство 'myDate' в классе
«... боб ...» ценить 5/11/10 3:00
AM.)]
Пользовательский: <f:converter converterId="c2d"/>
- getAsObject - возвращает объект
java.util.Calendar
из отправленного String
.
- getAsString - получает
Object
и возвращает отформатированный String
.
ПРИМЕЧАНИЕ: этот метод был взломан, поэтому вместо ожидания java.util.Calendar
он будет дополнять метод getAsObject
. Вместо этого взломанный метод getAsString
ожидает java.util.Date
, предоставленный в качестве параметра (ice:selectInputDate
), и возвращает отформатированный String
.
Но все равно появляется сообщение об ошибке:
[03.05.10 12: 55: 34: 299 EEST] 0000001f
D2DFaceletVie E
com.icesoft.faces.facelets.D2DFaceletViewHandler
renderResponse Проблема в
RenderResponse:
java.util.GregorianCalendar
несовместим с java.util.Date
java.lang.ClassCastException: java.util.GregorianCalendar
несовместим с java.util.Date
на com.icesoft.faces.component.selectinputdate.SelectInputDate.getTextToRender (SelectInputDate.java:252)
Любая подсказка очень полезна!
Спасибо,
Михаела