JSF 2.0 + selectOneRadio + selectOneMenu

6 respostas
V

Olá pessoa do GUJ, gostaria de saber se vocês podem me ajudar...
Estou fazendo uma aplicação onde a classe que estou mexendo se chama Inscricao.
na página web (inscricao.xhtml) estou tentando fazer a seguinte ideia.
Preciso ter um selectOneRadio onde o mesmo irá trazer as opções como o exemplo:

<h:outputText value="Tipo: "/>
   <h:selectOneRadio value="#{inscricaoMB.inscricao.tipo}">
      <f:selectItem itemLabel="Médico"           itemValue="M"/>
      <f:selectItem itemLabel="Enfermeiro"     itemValue="E" />
      <f:selectItem itemLabel="Fisioterapeuta" itemValue="F" />
   </h:selectOneRadio>

e a cada vez que o usuario clicar em uma opcao do selectOneRadio, logo abaixo
preciso que carregue (selectOneMenu) com uma lista do tipo respectivo, como o exemplo:

<h:selectOneMenu value="#{inscricaoMB.idmedico}">
   <f:selectItems value="#{medicoMB.lista}" var="medico" itemValue="#{medico.idMedico}" itemLabel="#{medico.fisica.pessoa.nome}"/>
</h:selectOneMenu>

<h:selectOneMenu value="#{inscricaoMB.idenfermeiro}">
   <f:selectItems value="#{enfermeiroMB.lista}" var="enfermeiro" itemValue="#{enfermeiro.idEnfermeiro}" itemLabel="#{enfermeiro.fisica.pessoa.nome}"/>
</h:selectOneMenu>

<h:selectOneMenu value="#{inscricaoMB.idfisioterapeuta}">
   <f:selectItems value="#{fisioterapeutaMB.lista}" var="fisioterapeuta" itemValue="#{fisioterapeuta.idfisioterapeuta}" itemLabel="#{fisioterapeuta.fisica.pessoa.nome}"/>
</h:selectOneMenu>

se alguem tiver alguma ideia de como fazer agradeco.
obrigado desde jah.

6 Respostas

A

cara,

vc vai ter que colocar a tag f:ajax no seu selectOneRadio. da uma olhada nesse link http://mkblog.exadel.com/2010/04/learning-jsf-2-ajax-in-jsf-using-fajax-tag/
t+

Diguinho.Max

vc pode usar a proprieda onchange no seu selectOneRadio menu e no seu bean crie um metodo que recupere a lista que deseja preencher.

V

alissonvla e Diguinho.Max

nao consegui reproduzir da maneira que me disseram…

se alguem tiver como exemplificar uma maneira aqui

agradeco

obrigado.

A

cara,

vc fez assim

<h:outputText value="Tipo: "/>  
<h:selectOneRadio value="#{inscricaoMB.inscricao.tipo}">  
	<f:selectItem itemLabel="Médico"           itemValue="M"/>  
	<f:selectItem itemLabel="Enfermeiro"     itemValue="E" />  
	<f:selectItem itemLabel="Fisioterapeuta" itemValue="F" /> 
	<f:ajax event="change" update="medico, enfermeiro, fisioterapeuta"/>
</h:selectOneRadio>
   
<h:selectOneMenu id="medico" value="#{inscricaoMB.idmedico}" rendered="#{inscricaoMB.inscricao.tipo eq 'M'}">  
   <f:selectItems value="#{medicoMB.lista}" var="medico" itemValue="#{medico.idMedico}" itemLabel="#{medico.fisica.pessoa.nome}"/>  
</h:selectOneMenu>  
  
<h:selectOneMenu id="enfermeiro" value="#{inscricaoMB.idenfermeiro}" rendered="#{inscricaoMB.inscricao.tipo eq 'E'}">  
   <f:selectItems value="#{enfermeiroMB.lista}" var="enfermeiro" itemValue="#{enfermeiro.idEnfermeiro}" itemLabel="#{enfermeiro.fisica.pessoa.nome}"/>  
</h:selectOneMenu>  
  
<h:selectOneMenu id="fisioterapeuta" value="#{inscricaoMB.idfisioterapeuta}" rendered="#{inscricaoMB.inscricao.tipo eq 'F'}">  
   <f:selectItems value="#{fisioterapeutaMB.lista}" var="fisioterapeuta" itemValue="#{fisioterapeuta.idfisioterapeuta}" itemLabel="#{fisioterapeuta.fisica.pessoa.nome}"/>  
</h:selectOneMenu>

t+

V

obrigado alissonvla.

agora funcionou beleza.

desculpa minha ignorancia.

abracos e sucesso.

Diguinho.Max

videntt edite o titulo do seu post para resolvido fazendo favor. ;D
assim evita que mais amigos do guj entrem neste poste que já está resolvido.

abraço!

Criado 23 de outubro de 2011
Ultima resposta 31 de out. de 2011
Respostas 6
Participantes 3