Carregar selectOneMenu a partir de um outro selectOneMenu

7 respostas
M

Galera bom dia,

 dias estou apanhando aqui num projeto utilizando JSF,  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.

7 Respostas

V

Implemente um valueChangeListener, e nesse listener você carrega a lista para o outro selectOneMenu.

R

marcio_santos2311:
Galera bom dia,

 dias estou apanhando aqui num projeto utilizando JSF,  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

M

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) {  
		              
		         }  
		        
		    }  
	 }  

}
V

Qual o escopo do seu manageBean?
Vc chegou a debugar e verificou se a condição if está sendo atendida?

R
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..

M

escopo session

V

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.

Criado 18 de abril de 2011
Ultima resposta 19 de abr. de 2011
Respostas 7
Participantes 3