public class Users implements Serializable {
private Integer id;
private String username;
private String password;
private Roles roles;
public Users() {
}
--- getters & setters ---
}
Esta clase será llamada en el ManagedBean junto con la clase Roles. Por tanto el ManagedBean quedaría como sigue,
@ManagedBean(name = "userBean")
@ViewScoped
public class UserBean implements Serializable {
private Users newUser = new Users();
private Roles[] roleses;
private final Roles roleAdmin = Roles.ADMINISTRATOR;
private final Roles roleUser = Roles.USER;
--- getters & setters ---
}
En esta clase hemos declarado Roles como un array y por tanto su método Get correspondiente se puede implementar de la siguiente manera,
public Roles[] getRoleses() {
roleses = Roles.values();
return roleses;
}
con lo que recuperamos los valores de la enumeración como String. Entonces la página JSF se podría implementar de la siguiente manera,
<h:outputLabel for="userRoles" value="Roles" />
<h:selectOneMenu id="userRoles" value="#{userBean.newUser.roles}" >
<f:selectItem itemLabel="Select role" noSelectionOption="true" />
<f:selectItems value="#{userBean.roleses}" var="role"
itemValue="#{role}" itemLabel="#{role.role}"/>
</h:selectOneMenu>
Podemos encontrar una información completa en Stackoverflow.com