Caros,
Alguém pode me ajudar? Achei um outro tópico com o mesmo tema, mas sem a solução.
Meu objetivo é ter uma tag SelectOneMenu, que é renderizada somente quanto outra tag SelectOneRadio tem seu atributo value alterado para “Alta”.
Entretanto, se utilizo o atributo rendered no SelectOneMenu, não consigo capturar a seleção (value) do usuário, independentemente se o valor do rendered é true ou false, o valor capturado do SelectOneMenu, vai para o bean como null.
Quanto excluo o atributo rendered funciona normalmente.
O que será que acontece? alguém conhece alguma maneira de solucionar isso?
Bean:
private HtmlSelectOneRadio selectOneRadioPriority;
private String goalComboShower = "false";
private List<SelectItem> userGoalsSelectItens;
private String goalSelectedId;
public List<SelectItem> getUserGoalsSelectItens(){
userGoalsSelectItens = new ArrayList<SelectItem>();
List<Goal> goals = gdao.listByUser(currentUser);
this.currentUser.setGoals(goals);
for(Goal g:goals){
userGoalsSelectItens.add(new SelectItem((Long)g.getGoalId(), g.getTitle()));
}
return userGoalsSelectItens;
}
public void goalComboShowerValueChange(ValueChangeEvent vcEvent){
if(selectOneRadioPriority.getValue().toString().equalsIgnoreCase("Alta")){
this.goalComboShower="true";
}
else{
this.goalComboShower="false";
}
}
Página:
<h:outputLabel id="ol_taskPriority" value="Prioridade: " />
<h:selectOneRadio id="sor_taskPriority"
border="0"
value="#{taskHandler.newTask.priority}"
binding="#{taskHandler.selectOneRadioPriority}"
valueChangeListener="#{taskHandler.goalComboShowerValueChange}"
immediate="true"
onchange="submit()">
<f:selectItem id="si_taskPriorityHigh"
itemLabel="Alta"
itemValue="Alta" />
<f:selectItem id="si_taskPriorityLow"
itemLabel="Baixa"
itemValue="Baixa" />
</h:selectOneRadio>
<h:outputLabel id="ol_taskTarget" value="Objetivo: " />
<h:selectOneMenu id="hsom_userGoalsSelectCombo"
title="selecione o objetivo atrelado à esta tarefa"
value="#{taskHandler.goalSelectedId}"
rendered="#{taskHandler.goalComboShower}">
<f:selectItem itemValue="0"
itemLabel="--- selecione um objetivo ---" />
<f:selectItems value="#{taskHandler.userGoalsSelectItens}" />
</h:selectOneMenu>
Desde já agradeço,
Um grande abraço,