vagner.oliveira2 18 de abr. de 2011
Implemente um valueChangeListener, e nesse listener você carrega a lista para o outro selectOneMenu.
raf4ever 18 de abr. de 2011
marcio_santos2311:
Galera bom dia,
há dias estou apanhando aqui num projeto utilizando JSF , tô querendo que ao escolher uma opção num selectOneMenu , um outro selectOneMenu seja carregado de acordo com a informação setada no primeiro .
Será que alguém poderia me tirar desse sofrimento . </ blockquote >
Pesquise por a4j:support
marcio_santos2311 18 de abr. de 2011
olha só, tô fazendo assim mas não ta dando certo não, onde é que eu tô errando
<h:selectOneMenu value= "#{pacienteBean.tipo }" onchange= "submit()" immediate= "true" valueChangeListener= "#{pacienteBean.carregaPaciente }" >
<f:selectItem itemValue= "opc1" />
<f:selectItem itemValue= "opc2" />
</h:selectOneMenu>
componente a ser carregado
<h:selectOneMenu id= "tipo" value= "#{pacienteBean.paciente.nome}" >
<f:selectItems value= "#{pacienteBean.listaPaciente}" />
</h:selectOneMenu>
meu bean
public class PacienteBean {
private List < SelectItem > listaPaciente ;
private Paciente paciente = new Paciente ();
public void carregaPaciente ( ValueChangeEvent event ) {
if ( event . getNewValue () != event . getOldValue ()) {
try {
listaPaciente . add ( new SelectItem ( "celso" ));
listaPaciente . add ( new SelectItem ( "Joaquim" ));
listaPaciente . add ( new SelectItem ( "luiz" ));
listaPaciente . add ( new SelectItem ( "Sergio" ));
} catch ( Exception e ) {
}
}
}
}
vagner.oliveira2 18 de abr. de 2011
Qual o escopo do seu manageBean?
Vc chegou a debugar e verificou se a condição if está sendo atendida?
raf4ever 19 de abr. de 2011
marcio_santos2311:
olha só, tô fazendo assim mas não ta dando certo não, onde é que eu tô errando
<h:selectOneMenu value= "#{pacienteBean.tipo }" onchange= "submit()" immediate= "true" valueChangeListener= "#{pacienteBean.carregaPaciente }" >
<f:selectItem itemValue= "opc1" />
<f:selectItem itemValue= "opc2" />
</h:selectOneMenu>
componente a ser carregado
<h:selectOneMenu id= "tipo" value= "#{pacienteBean.paciente.nome}" >
<f:selectItems value= "#{pacienteBean.listaPaciente}" />
</h:selectOneMenu>
meu bean
public class PacienteBean {
private List < SelectItem > listaPaciente ;
private Paciente paciente = new Paciente ();
public void carregaPaciente ( ValueChangeEvent event ) {
if ( event . getNewValue () != event . getOldValue ()) {
try {
listaPaciente . add ( new SelectItem ( "celso" ));
listaPaciente . add ( new SelectItem ( "Joaquim" ));
listaPaciente . add ( new SelectItem ( "luiz" ));
listaPaciente . add ( new SelectItem ( "Sergio" ));
} catch ( Exception e ) {
}
}
}
}
Faça como eu disse,use o a4j:support que dá certo..
marcio_santos2311 19 de abr. de 2011
vagner.oliveira2 19 de abr. de 2011
Ok!
Mas vc chegou a debugar?
Chegou a ver se sua lista é preenchida e se o listener esta sendo acionado?
Sua lista possui get e set.
Debuga ae e veja se pelo menos chega no listener.
att.