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![]() |
Roger Keays is an artist, an engineer, and a student of life. He has no fixed address and has left footprints on 40-something different countries around the world. Roger is addicted to surfing. His other interests are music, psychology, languages, the proper use of semicolons, and finding good food. |