[Seasar-user:15142] Re: Beans.createAndCopy 機能で、独自のConverterを使うことはできますか?
Masaru Ono
[E-MAIL ADDRESS DELETED]
2008年 7月 24日 (木) 13:57:43 JST
ひが殿
お疲れ様です。
尾野です。
createAndCopyのメソッドの後に、converterメソッドが記述できることを気づかずに、
四苦八苦しておりました^^;
以下のような実装で、java.sql.Timestamp型をyyyyMMddのStringに変換できるようになりました。
ありがとうございます。
Beans.copy(entity, form).converter(new TimestampConverter()).execute();
public class TimestampConverter implements Converter {
public TimestampConverter() {
this("yyyyMMdd");
}
// public TimestampConverter(String pattern) {
private TimestampConverter(String pattern) {
if (StringUtil.isEmpty(pattern)) {
throw new EmptyRuntimeException("pattern");
} else {
this.pattern = pattern;
return;
}
}
public Object getAsObject(String value) {
if (StringUtil.isEmpty(value))
return null;
else
return DateConversionUtil.toDate(value, pattern);
}
public String getAsString(Object value) {
return StringConversionUtil.toString((Date) value, pattern);
}
public boolean isTarget(Class clazz) {
return clazz == (java.sql.Timestamp.class);
}
protected String pattern;
}
>ひがです。
>>
>> > いつもお世話になっております。
>> > 尾野です。
>> >
>> > 現在、EntityをFormにマッピングする際に、
>> > java.sql.Timestamp があると、Beans.createAndCopy実行後に、個別にマッピングする処理が記述しています。
>> >
>> > BeanUtilsのように、独自のConvertorを登録する(利用する)方法があればぜひ教えてください。
>> >
>> http://s2container.seasar.org/2.4/ja/beans.html#converter
>> を参照してください。
>http://s2container.seasar.org/2.4/ja/beans.html#dateConverter
>を使えばさらに簡単に記述できます。
>
>S2BeanUtilsは流れるようなインターフェースを採用しているので、
>IDEのコードアシストで何ができるか大体わかりますよ。
>_______________________________________________
>Seasar-user mailing list
>[E-MAIL ADDRESS DELETED]
>https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内