[Seasar-user:15525] Re: S2BeansUtils でEnum型のコンバート
Yasuo Higa
[E-MAIL ADDRESS DELETED]
2008年 8月 26日 (火) 18:20:23 JST
ひがです。
> いづのです。
>
> S2BeansUtilsでEnum型のプロパティをコンバートをするために以下のようなconverterを用意しました。
>
S2BeanUtilsでは、Stringと特定の型の変換をサポートするフレームワークです。
そのため、Enumの場合は、name()による変換のみをサポートしています。
ordinal()を画面に表示したい場合は、f:label()を使うのがお勧めです。
http://sastruts.seasar.org/featureReference.html#JSP
よろしくお願いします。
> public class EnumOrdinalConverter implements Converter {
> private final Class<? extends Enum> enumClass;
>
> public EnumOrdinalConverter(Class<? extends Enum> enumClass) {
> this.enumClass = enumClass;
> }
>
> public Object getAsObject(String value) {
> if (StringUtil.isEmpty(value)) {
> return null;
> }
> if (!StringUtil.isNumber(value)) {
> return null;
> }
> return enumClass.getEnumConstants()[IntegerConversionUtil.toPrimitiveInt(value)];
> }
>
> public String getAsString(Object value) {
> return StringConversionUtil.toString((Enum.class.cast(value)).ordinal());
> }
>
> public boolean isTarget(Class clazz) {
> return clazz == Enum.class;
> }
> }
>
> ただこれだと型毎にconverterを指定する必要があるのであまりうれしくありません。
> コンバート先の型をみてコンバートできればいいのですが、そういった事は可能でしょうか。
>
> S2JDBCでEnum型の定義もordinal値がサポートされているのでS2BeansUtilsの方でサポートしていただくことはできないでしょうか?
>
> 以上
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内