[Seasar-user:19386] Re: [SAStruts] 文字列から列挙型への変換について

田嶋隆寿 [E-MAIL ADDRESS DELETED]
2010年 2月 25日 (木) 22:53:30 JST


田嶋です。
いつもお世話になっております。

> S2BeanUtilsはEnumかどうかは意識してなくて、staticなvalueOf()に
> フィールドの値を渡しているだけなので、既存のアプリに影響を与えずに
> 変更するのは難しいです。

既存のアプリに影響を与えてしまうとなると、
確かに諦めたほうがよさそうです。

> EnumのConverterを作って空文字のときにnullに変更することは可能だと
> 思うので、beans.converterにいるやつを参考にしてみてください。

既存のConverterを参考に、以下のクラスを作成したところ、
思った通りの動作が実現できました。
ありがとうございました。

public class EnumConverter implements Converter {

    public Object getAsObject(String value) {
        if (StringUtil.isEmpty(value)) {
            return null;
        }
        return value;
    }

    public String getAsString(Object value) {
        return StringConversionUtil.toString(value);
    }

    @SuppressWarnings("unchecked")
    public boolean isTarget(Class clazz) {
        return Enum.class.isAssignableFrom(clazz);
    }
}


Seasar-user メーリングリストの案内