ではなく、コンポーネントをフィールドに<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 で正しい値をフォーマットしますがbean.myDate
、タイプのプロパティに設定すると、Calendar
次のエラー メッセージが表示されます。[5/3/10 12:09:18:398 EEST] 00000021 ライフサイクル I 警告: FacesMessage はキューに入れられましたが、表示されていない可能性があります。sourceId=j_id12:j_id189:myDate[重大度=(エラー 2)、概要=(/WEB-INF/xhtml............file.xhtml @507,51 値="#{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' に設定できません.)]
カスタム 1:
<f:converter converterId="c2d"/>
- getAsObject -
java.util.Calendar
送信された からオブジェクトを返しますString
。 - getAsString - を受け取り、フォーマットされた
Object
ものを返します。String
- getAsObject -
注: このメソッドはハッキングされたので、メソッド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 renderResponse の問題: java.util.GregorianCalendar は java.util.Date java.lang.ClassCastException と互換性がありません: java.util.GregorianCalendar は、com.icesoft.faces.component.selectinputdate.SelectInputDate.getTextToRender(SelectInputDate.java:252) で java.util.Date と互換性がありません
どんなヒントもとても役に立ちます!ありがとう、ミハエラ