Pessoal, possuo um Enum e quero que o usuário escolha uma alternativa por meio de um p:selectOneMenu. Minha página recupera os Enums do ManagedBean e as exibe sem problemas, porém quando o usuário escolhe o enum nada acontece, ou seja, o enum não é setado.
FiltroEnum
[code]public enum FiltroEnum {
TODOS(“TODOS”, “0”), ATIVADAS(“ATIVADAS”, “1”), INATIVADAS(“INATIVADAS”, “2”);
private String key;
private String value;
private FiltroEnum(String key, String value){
this.key = key;
this.value = value;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getValue() {
return value;
}
public int getValueInteger() {
return Integer.parseInt(value);
}
public void setValue(String value) {
this.value = value;
}
}[/code]
ManagedBean
[code]//Enums
private FiltroEnum filtro;
private List filtros;
@PostConstruct
public void init(){
System.out.println("init()");
this.filtros = Arrays.asList(FiltroEnum.values());
}
public FiltroEnum getFiltro() {
return filtro;
}
public void setFiltro(FiltroEnum filtro) {
this.filtro = filtro;
}
public List<FiltroEnum> getFiltros() {
return filtros;
}
public void setFiltros(List<FiltroEnum> filtros) {
this.filtros = filtros;
}
public void preparaDataTable(){
int filtro = Integer.parseInt(this.filtro.getValue());
this.ras = this.getRArepository().getLista(filtro);
Collections.sort(this.ras);
}
[/code]
xhtml
[code]<h:panelGrid columns=“2”>
<p:outputLabel value=“Exibir:” for=“exibir-select” styleClass=“label” />
<p:selectOneMenu id=“ra-exibir-select” value="#{rABean.filtro}" >
<f:selectItems value="#{rABean.filtros}" var="f"
itemLabel="#{f.key}" itemValue="#{f}" />
<p:ajax listener="#{rABean.preparaDataTable()}" update="dataTable"/>
</p:selectOneMenu>
</h:panelGrid>[/code]
Desde já. agradeço a ajuda!