[Seasar-user:16566] Re: [Teeda]Calendar型にTDateTimeConverterを指定するとエラーになります
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2008年 12月 30日 (火) 00:00:40 JST
小林 (koichik) です.
Date: Sun, 28 Dec 2008 04:20:07 +0900
From: "Ryo Ikeda" <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:16563] [Teeda]Calendar型にTDateTimeConverterを指定するとエラーになります
> @DateTimeConverter(pattern = "yyyy/MM/dd")
> public Calendar calendar;
>
> TeedaにてPageクラスにCalendarのフィールドを作り、
> TDateTimeConverterアノテーションを指定すると、
> 文字列 → Calendar型 の変換は成功するのですが、
> Calendar型 → 文字列 の変換でエラーが発生します。
> (ログを添付いたします。)
>
> PageクラスではDate型で宣言しないとまずいでしょうか?
JSF 仕様の DateTimeConverter は文字列と java.util.Date
およびそのサブクラスとの相互変換のみサポートしていて,
Calendar との変換は対象になっていないようです.
http://java.sun.com/javaee/5/docs/api/javax/faces/convert/DateTimeConverter.html
The getAsString() method expects a value of type java.util.Date (or a subclass)
元々 java.text.DateFormat が Calendar をサポート
していないせいかも.
> http://teeda.seasar.org/ja/extension/reverse/convert.html
>
> Teeda 逆引きリファレンスにて、「java.util.Calendar や java.sql.Date,
> java.sql.Time,java.sql.Timestamp 型のプロパティに設定する事ができます」
> とあるため、疑問に思いました。
なので,これはドキュメントのバグ臭いのですが,
String -> Calendar ができるのに非対称なのも
変なので Teeda 独自の TDateTimeConverter のみ
サポートしました.
# @DateTimeConverter アノテーションを指定すると
# TDateTimeConverter が使われます.
SNAPSHOT をデプロイしたのでご確認ください.
http://maven.seasar.org/maven2-snapshot/org/seasar/teeda/teeda-core/1.0.13-sp5-SNAPSHOT/teeda-core-1.0.13-sp5-20081229.144312-1.jar
http://maven.seasar.org/maven2-snapshot/org/seasar/teeda/teeda-extension/1.0.13-sp5-SNAPSHOT/teeda-extension-1.0.13-sp5-20081229.144312-1.jar
http://maven.seasar.org/maven2-snapshot/org/seasar/teeda/teeda-ajax/1.0.13-sp5-SNAPSHOT/teeda-ajax-1.0.13-sp5-20081229.144312-1.jar
http://maven.seasar.org/maven2-snapshot/org/seasar/teeda/teeda-tiger/1.0.13-sp5-SNAPSHOT/teeda-tiger-1.0.13-sp5-20081229.144639-1.jar
> また、定数アノテーションの方では、
>
> > public static final String date_TDateTimeConverter = "pattern='yyyy/MM/dd'";
> > public BigDecimal date;
>
> とBigDecimal型になっておりますが、これはDate型の間違いでしょうか?
ご指摘ありがとうございます.
後で [TEEDA-492] とまとめて直しておきます.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内