Ola pessoal
eu tenho um ManagedBean, onde eu controlo o estado da pagina e de acordo com ele, a pagina toma certas atitudes.
quando click no botao de revisar, se os dados nao estiverem igual ao cadastrado, ele marca como revisado, se nao, ele avisa o ao usuario que os dados nao estao e pede a ele para dar o motivo para que o cadastro precisa ser recadastrado.
porem, ao clicar no revisar, ele mostra o campo “motivo”, e ao clicar no botao Recadastrar, ele perde muda o status do cadastro como “Recadastrar”.
porem, quando click no “Recadastrar” ele perde o valor de “estadoAtual”.
Eu fiz o teste pra ver se ele perdia o valor de todos os atributos, porem, apenas o “estadoAtual” que perde o valor.
Como eu faco pra nao perder o valor deste atributo(de preferenca sem passar ele como parametro novamente no botao)?
minha pagina
....
<a4j:outputPanel id="recadastroCampo" ajaxRendered="true" style="width:720px" >
<h:outputLabel value="Motido de Recadastro" for="recadastro"></h:outputLabel>
<h:inputText value="#{pessoaFisicaMB.pessoaFisica.recadastro.motivo}" maxlength="50" size="50" rendered="#{!(pessoaFisicaMB.estadoAtual.id==5)}" styleClass="FormCampo"></h:inputText>
|Status Pagina: <h:outputText value="#{pessoaFisicaMB.estadoAtual}"/>|//teste pra ver o valor de estado atual
|CPF: <h:outputText value="#{pessoaFisicaMB.pessoaFisica.documento}"/>|//teste pra ver o valor de documento, pra ver se ele perdia tambem o valor, porem, ele nao perde
</a4j:outputPanel>
<span style="width: 720px">
<a4j:commandButton value="Cadatrar" action="#{pessoaFisicaMB.acaoCadastrar}"> </a4j:commandButton>
<a4j:commandButton value="Recadastrar" action="#{pessoaFisicaMB.acaoRecadastrar}"> </a4j:commandButton>
<a4j:commandButton value="Revisar" action="#{pessoaFisicaMB.acaoRevisar}" reRender="recadastroCampo"> </a4j:commandButton>
....
</span>
meu ManagedBeam
...
public void acaoRevisar(){
RetornoProcedure retornoProcedure = new RetornoProcedure();
try {
this.pessoaFisicaDB.revisar(this.pessoaFisica, retornoProcedure);
} catch (KrusstException e) {
e.printStackTrace();
}
if(retornoProcedure.getErroId()==0){
FacesUtils.addInfoMessage("Dados do cadastro OK.");
}else{
FacesUtils.addErrorMessage(retornoProcedure.getErroMensagem());
this.paginaEstadoAtual = PaginaEstado.ESTADO_DE_RECADASTRO;
}
}
public void acaoRecadastrar(){
RetornoProcedure retornoProcedure = new RetornoProcedure();
if(this.pessoaFisica.getRecadastro().getMotivo().length()<=5){
FacesUtils.addErrorMessage("campo motivo de recadastro");
}else{
RecadastroDB recadastroDB = new RecadastroDB();
try {
recadastroDB.insert(this.getPessoaFisica().getId(), this.getPessoaFisica().getRecadastro(), retornoProcedure);
} catch (KrusstException e) {
e.printStackTrace();
}
if (retornoProcedure.getErroId()==0) {
FacesUtils.addInfoMessage("Cadastro de Recadastro realizado com sucesso, código do cadastro: " + retornoProcedure.getCadastroId());
} else {
FacesUtils.addErrorMessage(retornoProcedure.getErroMensagem());
}
}
}
...
abs
T+
Mas aconselhado seria utilizando o componente t:saveState do Tomahawk.