Using Enums in EL

By , 21 January 2009

Using Enums in EL

Unfortunately EL has no special support for enums. That makes it especially hard when you need to input enum values (for example from a dropdown box). One simple solution is to add a getter and setter to your bean to marshall the String value to and from an enum:

enum Status { A, B, C, D}

/* EL convenience getters and setters */
public String getStatus_() {
    return (status == null) ? null : status.name();
}
public void setStatus_(String status) {
    this.status = Status.valueOf(status);
}

Now you can build your dropdowns easily like this:

<h:outputText value="Status:"/>
<h:selectOneMenu value="${bean.status_}">
  <f:selectItem itemValue="A" itemLabel="Asleep"/>
  <f:selectItem itemValue="B" itemLabel="Bored"/>
  <f:selectItem itemValue="C" itemLabel="Creative"/>
  <f:selectItem itemValue="D" itemLabel="Dead"/>
</h:selectOneMenu>

In this example I use the underscore on the method name to distinguish it from the regular getter and setter which are not shown.

Using Enums in EL

About Roger Keays

Roger is an active member of the JSF 2 Expert Group and is happy to be a contributor to the Java Community. He has been writing software since the age of 8 and his other interests include languages, science, travel and surfing.

Add a comment

Please visit http://www.NinthAvenue.com.au/blog/using-enums-in-el to add your comments.

Join The Mailing List

Subscribe to our mailing list for the latest news and announcements.

Follow Ninth Avenue

Get Results With Women

Website Updates