Boa noite,
Eu tenho um projeto feito em jsf e jpa e tenho a seguinte situação quando acesso a primeira vez uma pagina os campos estão todos em brancos, efetuo meu cadastro. até ai blz, o que eu gostaria eh o seguinte quando eu acessar novamente eu gostaria que estivesse em branco tbm e ele jah vem com a tela preenchida com o ultimo cadastro feito
teria alguma forma de limpar o session não sei se essa eh a forma, alguma maneira que todas vez q eu acessar o formulario ele vir em branco, eu poderia até fazer ao acessar a pagina executar o comando (Modelo modelo = new Modelo()
mas tem paginas que não existe para cadastrar um novo registro so consultas
Amigo,
Como você está implementando o seu JSF no Bean?
Se você utilizar os escopo Conversation e View, você não terá esse problema.
No método de init, você deverá colocar desta forma, caso você use Conversation como escopo.
[code]@Inject Conversation conversation;
@PostConstruct
public void init(){
if(conversation.isTransient()){
conversation.begin();
}
}[/code]
eu estou usando dessa forma aqui:
@ManagedBean(name = "holeriteControle")
@SessionScoped
public class HoleriteControle implements Serializable {
private Holerite holerite = null;
@EJB
private HoleriteDAO dao;
private List<Holerite> listaTodos;
private List<Holerite> listaId = null;
private List<SelectItem> listaEntidade;
private List<SelectItem> listaMatricula;
private List<SelectItem> listaCompetencia;
private UploadedFile upload;
private String entidade;
private Integer matricula;
private String competencia;
private String visualizaHolerite = "selecione dados";
public HoleriteControle() {
}
Retire de suas rotinas escopo Session, é um perigo, use o que eu te falei anteriormente, o escopo Conversation, que será pendurado por todas as páginas que você precisar navegar. Uma segunda dica é sempre passar para o backbean o conversation atual na troca de form, como por exemplo abaixo.
<h:commandButton actionListenner="{bean.acao}" value="Gravar">
<f:param name="cid" value="#{bean.conversation.id}" />
</h:commandButton>
ficou perfeito da maneira que eu esperava, muito obrigado pela dica.
Só frisando para que você não se esqueça quando for utilizar mais de um formulário colocar o parâmetro de cid, como também, no seu método de init perguntar se o conversation está transient e colocá-lo para iniciar novamente, conforme instruído anteriormente.
Um abraço.