Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use Spring options tag to display enum's toString value

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?

like image 581
Steve Kuo Avatar asked Feb 13 '09 00:02

Steve Kuo


1 Answers

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.

like image 117
user1366265 Avatar answered Sep 22 '22 17:09

user1366265