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

Using Enums in EL

Leave a Comment

Please visit https://rogerkeays.com/blog/using-enums-in-el to add your comments.