Using Enums in ELBy Roger Keays, 21 January 2009, 11:14 AM |
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![]() |
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. You can follow Roger on Twitter and Google+. |
| « Removing Line Feeds in Java | Back to Blog | Vim Keybindings for Netbeans » |