有谁知道如何< ice:selectInputDate>被映射到java.util.Calendar字段上,而不是java.util.Date上?
我从IceFaces版本1.8.2开始使用组件< ice:selectInputDate>.该组件需要与java.util.Date属性绑定.例如,对于value =“#{bean.myDate}”,myDate字段必须为java.util.Date类型.但是我需要我的日期字段为java.util.Calendar类型.
我的试用:我尝试使用标准转换器或自定义转换器:
>标准一:< f:convertDateTime pattern =“ dd / MM / yyyy” />它在GUI中格式化了正确的值,但是在Calendar类型的bean.myDate属性上进行设置时,出现以下错误消息:
[5/3/10 12:09:18:398 EEST] 00000021
lifecycle I WARNING: FacesMessage(s)
have been enqueued, but may not have
been displayed.
sourceId=j_id12:j_id189:myDate[severity=(ERROR 2),
summary=(/WEB-INF/xhtml…………file.xhtml @507,51 value=”#{bean.myDate}”: Can’t
set property ‘myDate’ on class ‘bean’
to value ‘5/11/10 3:00 AM’.),
detail=(/WEB-INF/xhtml……..file.xhtml
@507,51 value=”#{bean.myDate}”: Can’t
set property ‘myDate’ on class
‘…bean…’ to value ‘5/11/10 3:00
AM’.)]
>自定义一个:< f:converter converterId =“ c2d” />
> getAsObject-从提交的String中返回java.util.Calendar对象.
> getAsString-接收一个对象,并返回格式化的字符串.
注意:该方法被黑,所以与其期望java.util.Calendar不能与getAsObject方法互补.相反,被黑的方法getAsString需要一个java.util.Date作为参数提供(由ice:selectInputDate提供)并返回格式化的String.
但是仍然出现错误消息:
[5/3/10 12:55:34:299 EEST] 0000001f
D2DFaceletVie E
com.icesoft.faces.facelets.D2DFaceletViewHandler
renderResponse Problem in
renderResponse:
java.util.GregorianCalendar
incompatible with java.util.Date
java.lang.ClassCastException: java.util.GregorianCalendar
incompatible with java.util.Date
at com.icesoft.faces.component.selectinputdate.SelectInputDate.getTextToRender(SelectInputDate.java:252)
任何提示都是非常有用的!
谢谢,
米哈埃拉