Tenho um cadastro dividido em duas partes, primeiro o usuário escolhe o tipo de conta e submete o formulario, depois esse mesmo formulario é devolvido com os demais campos pré-preenchidos e o usuário altera o que precisar.
Estas duas requisições utiilzam o mesmo manaded bean, claro que por se tratarem de duas requisições seguidas serão duas instâncias diferentes do mesmo bean.
O bean se chama cadastroBean, e está declarado no faces-config.xml dessa forma:
<managed-bean>
<managed-bean-name>cadastroBean</managed-bean-name>
<managed-bean-class>beans.CadastroBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
O usuário submete o formulario e então armazeno o tipo de conta dentro do bean dessa forma:
<h:form>
<h:selectOneMenu value="#{cadastroBean.tipo}">
<f:selectItems value="#{tipos.itens}"/>
</h:selectOneMenu>
<h:commandButton value="Consultar" action="#{cadastroBean.consultar}"/>
<h:inputText value="#{cadastroBean.nome}"/>
...e outros mais...
</h:form>
Esperava poder preencher o bean com os dados quando consultar() fosse invocado e retornar esta mesma página agora com os campos preenchidos, porém, como um novo cadastroBean é criado para renderizar a página para o usuário este novo bean vem vazio.
Qual a forma correta de se resolver isto? Qual a forma correta de se resgatar os dados de cadastroBean da requisição anterior e repassá-los para o cadastroBean da nova requisição? Alguma sugestão?
O bean é mais ou menos assim:
package beans;
public class CadastroBean {
public void setTipo(String) ...
public String getTipo() ...
public void setNome(String) ...
public String getNome() ...
public String consultar() ...
etc ...
}
