O código abaixo é meio longo mas preciso para explicar meu problema:
[code]<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”>
<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>
<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>[/code]
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
}