Objeto atual da lista não atualiza no Managed Bean, por que será?

2 respostas
javer
O código abaixo é meio longo mas preciso para explicar meu problema:
<h:panelGrid width="600px" columns="1" border="0">
    <rich:panel header="#{msg.tituloTarifa}" style="background-color: #ebf3fd;">
        <h:panelGrid width="100%" columns="2" border="0">
            <h:form id="formTarifasCadastradas">
                <!-- Lista das Tarifas Cadastradas -->
                <h:outputLabel for="tarifas" value="Tarifas cadastradas:" style="width:20%" />
                <h:selectOneMenu
                    id="tarifas"
                    value="#{tarifaBean.item}"
                    style="width:80%"
                    valueChangeListener="#{tarifaBean.tarifaChanged}"
                    immediate="true" >
                    <f:selectItems var="tarifa" id="tarifa" value="#{tarifaBean.listaTarifas}" />
                    <a4j:support event="onchange" reRender="formDados,formValoresAliquotas" />
                    <f:converter converterId="ConverterTarifa" />
                </h:selectOneMenu>
            </h:form>
        </h:panelGrid>
        <br/>
        <rich:message for="tarifas" globalOnly="false"/>

        <a4j:region>
            <rich:tabPanel switchType="client" selectedTab="tab_principal">
                <rich:tab label="Dados Principais" id="tab_principal">
                    <a4j:form requestDelay="20" ignoreDupResponses="true" id="formDados">
                        <h:panelGrid width="100%" columns="4" border="0">
                            <h:outputLabel for="tipoCarga" value="Tipo de Carga"/>
                            <h:inputText id="tipoCarga" size="30" value="#{tarifaBean.item.tipoCarga}"
                                         style="width:100%" >
                                <rich:ajaxValidator event="onblur"/>
                            </h:inputText>
                            <rich:message for="tipoCarga" style="color:red" globalOnly="false"/>
                        </h:panelGrid>
                    </a4j:form>
                </rich:tab>
            </rich:tabPanel>
        </a4j:region>
  
      <!-- Nesse botão quando a Action é chamada no BB o objeto (Tarifa), que acabou de ser carregado no formulário em outra outra Action do Combo, aparece como null -->
        <a4j:form>
            <a4j:commandButton
                value="Salvar Tarifa"
                title="Salvar esse cadastro"
                actionListener="#{tarifaBean.salvar}"
                />                    
        </a4j:form>
    </rich:panel>
</h:panelGrid>
Tenho uma lista de de Objetos (tipo Tarifa) e quando um deles é selecionado ele é carregado em um formulário, tenho um botão Salvar que quero que quando clicado a Action salvar seja chamada e o objeto atualizado, porém quando a action é chamada o objeto aparece como null, mas como se ele acabou de carregar no formulário? Action:
public void salvar(ActionEvent event) {
        System.out.println("== SALVAR TARIFA VIA HIBERNATE ");
        System.out.println("Tipo Carga: "+item.getTipoCarga()); // imprime null porém existe um texto para esse campo no formulário
    }

2 Respostas

javer

Já “quebrei a cabeça” tentando descobrir onde foi que errei e porque as propriedades do objeto retornal null quando executo esse Action sendo que as propriedades foram carregadas nos campos, etc.

Se alguém puder dar alguma dica.

C

Cara, antes de qq coisa, reduza esse seu código para o mínimo possível. Deixe só as colunas realmente necessárias.
O meu FF travou qndo tentei acessar esse topic, pq ele ficou renderizando esse code.

E outra coisa: BB? vc quer atualizar um objeto do Banco de Brasil? =P

Criado 9 de junho de 2009
Ultima resposta 10 de jun. de 2009
Respostas 2
Participantes 2