有谁知道如何将组件<ice:selectInputDate>
映射到java.util.Calendar
字段上,不是java.util.Date
吗?
我使用的是IceFaces版本 1.8.2,组件<ice:selectInputDate>
. 这个组件需要绑定一个java.util.Date
属性。例如value="#{bean.myDate}"
,该myDate
字段的类型必须为java.util.Date
。但我需要我的日期字段是 type java.util.Calendar
。
我的试验:我尝试使用标准转换器或自定义转换器:
标准一:
<f:convertDateTime pattern="dd/MM/yyyy" />
它格式化正确的 GUI 中的值,但是在bean.myDate
类型的属性上设置它时,Calendar
我收到以下错误消息:[5/3/10 12:09:18:398 EEST] 00000021 生命周期 I 警告:FacesMessage 已入队,但可能尚未显示。sourceId=j_id12:j_id189:myDate[severity=(ERROR 2), summary=(/WEB-INF/xhtml............file.xhtml @507,51 value="#{bean. myDate}": 无法将类 'bean' 上的属性 'myDate' 设置为值 '5/11/10 3:00 AM'。),detail=(/WEB-INF/xhtml........ file.xhtml @507,51 value="#{bean.myDate}":无法将类 '...bean...' 上的属性 'myDate' 设置为值 '5/11/10 3:00 AM' .)]
定制一:
<f:converter converterId="c2d"/>
- getAsObject -
java.util.Calendar
从提交的对象中返回对象String
。 - getAsString - 接收一个
Object
,并返回String
格式化的。
- getAsObject -
注意:这个方法被黑了所以而不是期望java.util.Calendar
, 与getAsObject
方法互补。相反,被破解的方法getAsString
需要一个java.util.Date
,作为参数(by ice:selectInputDate
)提供并返回String
格式化的。
但仍然出现错误消息:
[5/3/10 12:55:34:299 EEST] 0000001f D2DFaceletVie E com.icesoft.faces.facelets.D2DFaceletViewHandler renderResponse 渲染响应中的问题:java.util.GregorianCalendar 与 java.util.Date 不兼容 java.lang.ClassCastException: java.util.GregorianCalendar 与 com.icesoft.faces.component.selectinputdate.SelectInputDate.getTextToRender 的 java.util.Date 不兼容(SelectInputDate.java:252)
任何提示都非常有用!谢谢,米哈埃拉