Java – Use Spring options tag to display enum’s toString value

enumsjavajspspring

I'm using Spring for an HTML form. One of the fields is an enum and thus I'd like a HTML drop-down list (<option> tag). My enum's name is different than the toString() value. For example:

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;
    }
}

I want the user to see the toString() value. Normally this is accomplished using the itemLabel of the Spring options tag.

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

But toString() isn't a bean property as it doesn't start with "get". Is there a way to set itemLabel to use toString's value without having to create a getter?

Best Solution

I know this is few years old and must be solved by now, but thought I'd add the solution for future comers.

Just remove the [itemLabel="beanProperty"] part. It will use the toString to print the values.