Problema com 3 combos aninhados usando jsf+a4j

8 respostas
dobau

Estou com problema ao desenvolver 3 combos utilizando jsf e a4j.

Código

<h:selectOneMenu value="#{crimeForm.tipoCrime}" id="tipoCrime">
   <f:selectItems value="#{crimeForm.tipoCrimeItens}" />
   <a4j:support event="onchange" action="#{crimeForm.tipoVitimaItens}" ajaxSingle="true" reRender="tipoVitima"/>
</h:selectOneMenu>

<h:selectOneMenu value="#{crimeForm.tipoVitima}" id="tipoVitima">
   <f:selectItems value="#{crimeForm.tipoVitimaItens}"/>
   <a4j:support event="onchange" action="#{crimeForm.tipoLocalItens}" ajaxSingle="true" reRender="tipoLocal"/>
</h:selectOneMenu>

<h:selectOneMenu value="#{crimeForm.tipoLocal}" id="tipoLocal">
   <f:selectItems value="#{crimeForm.tipoLocalItens}" />
</h:selectOneMenu>

O problema está do segundo para o terceiro combo, pois em tipoLocalItens quando tento recuperar o valor do tipoVitima ele sempre é null, como se não fosse selecionado nenhum valor ou algo do gênero. Meu managed bean é configurado para request.

8 Respostas

dobau

Tinha configurado o managed bean assim:

<managed-property>
			<property-name>tipoCrime</property-name>
			<value>#{requestScope.tipoCrime}</value>
		</managed-property>
		<managed-property>
			<property-name>tipoVitima</property-name>
			<value>#{requestScope.tipoVitima}</value>
		</managed-property>
		<managed-property>
			<property-name>tipoLocal</property-name>
			<value>#{requestScope.tipoLocal}</value>
		</managed-property>

e chegou a funcionar… mas não sei por qual motivo parou de funcionar

dobau

Adicionei isso:

<t:saveState value="#{crimeForm.tipoCrimeItens}"/>
              <t:saveState value="#{crimeForm.tipoVitimaItens}"/>

mas não funcionou, continuou com o mesmo problema

Alterei para

<t:saveState value="#{crimeForm.tipoCrime}"/>
              <t:saveState value="#{crimeForm.tipoVitima}"/>

nisso o problema foi que o tipoVitima depois que era configurado pela primeira vez não mudava mais quando era executado, mesmo um outro valor sendo selecionado quando popula o terceiro combo ele utiliza o valor que estava salvo e não o novo valor que escolhi. Debugando aqui, repai também que o valor do tipoCrime voltava a ser null.

M

Mano, consegiu a solucao? To com o mesmo problema

C

Eu também, alguém conseguiu a solução?

braian

Eu também estou com o mesmo problema.

Alguém TEM A SOLUÇÃO?!??

F

O atributo ajaxSingle informa que somente o componente que gerou o evento será submetido. Remove esse atributo que deve funcionar.

braian

fre_d:

O atributo ajaxSingle informa que somente o componente que gerou o evento será submetido. Remove esse atributo que deve funcionar.

Hummmmmmm, não sabia.

Valeu!

webdiferente

[quote=dobau]Estou com o mesmo problema ao desenvolver 2 combos utilizando jsf e a4j.

Código
<h:outputLabel for="cidade" value="Cidade " />

    <h:selectOneMenu id="cidade" value="#{ControlaEndereco.cidade}" >
        <f:selectItem itemValue="" itemLabel="Selecione..." />
        <f:selectItems value="#{ControlaEndereco.cidades}" />
        <a4j:support event="onchange"  action="#{ControlaEndereco.actionCarregaBairros}" reRender="bairro,cidade" />

    </h:selectOneMenu>

    <h:outputLabel for="bairro" value="Bairro" />
    <h:selectOneMenu id="bairro" value="#{ControlaEndereco.bairro.codBairro}">
        <f:selectItem itemValue="" itemLabel="Selecione..." />
        <f:selectItems value="#{ControlaEndereco.bairros}" />
    </h:selectOneMenu>

Eu consigo capturar do Banco a primeira consulta do primeiro select vai normalmente mas quando chega no action="#{ControlaEndereco.actionCarregaBairros}" tentei debugar e nem entrou neste metodo..se alguem puder me dar uma ajuda agradeceria muito...estou usando JSF 1.2, DAO, sem HIbernate..
Desde ja agradeço ... se alguem puder ajudar coloco a classe controladora....

Criado 8 de novembro de 2007
Ultima resposta 19 de nov. de 2011
Respostas 8
Participantes 6