使用Spring选项标签显示枚举的toString值

时间:2009-02-13 00:32:38

标签: java spring jsp enums

我正在使用Spring作为HTML表单。其中一个字段是enum,因此我想要一个HTML下拉列表(<option>标记)。我的枚举名称与toString()值不同。例如:

public enum Size {
    SMALL("Small"), LARGE("Large"), VERY_LARGE("Very large");

    private final String displayName;

    private Size(String displayName) {
        this.displayName = displayName;
    }

    public String toString() {
        return displayName;
    }
}

我希望用户看到toString()值。通常,这是使用Spring选项标记的itemLabel来完成的。

<form:options items="${enumValues}" itemLabel="beanProperty" />

但是toString()不是bean属性,因为它不以“get”开头。有没有办法设置itemLabel使用toString的值而不必创建一个getter?

3 个答案:

答案 0 :(得分:6)

我知道这已经有几年了,现在必须解决,但我想我会为未来的人添加解决方案。

只需删除[itemLabel =“beanProperty”]部分即可。它将使用toString来打印值。

答案 1 :(得分:2)

为什么不在你的枚举中添加一个公共getDisplayName()方法?

答案 2 :(得分:1)

您是否尝试过使用Spring强大的AOP模型从一个地方扩展您的枚举?看起来,根据您拥有的枚举数量,您可以轻松地向所有人添加getDisplayName()方法,只返回toString()值。