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 I Like Spam

Using Enums in EL

Leave a Comment

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