Galera, agradeço a todos pela ajuda e fiquei contente em saber desse novo recurso do JSF 2, o Flash Scope, tenho certeza que vou precisar usá-lo bastante.
Mas eu acho, que neste meu caso em particular, o flash scope não vai ajudar. Ou talvez ajude, se eu puder checar pelo managed bean dentro do código java.
Por exemplo, no método do EventoBean que pede para gerar um novo evento e redireciona para a página estou fazendo assim:
SessaoUtil.setRequestAttribute(FacesContext.getCurrentInstance(), this, "eventoBean");
return "/restrito/eventos/adicionar_evento.jsf?faces-redirect=true";
Ou seja, estou guardando o próprio eventoBean na HttpSession.
No construtor padrão de EventoBean eu faço o seguinte:
EventoBean eventoBean = (EventoBean) SessaoUtil.getRequestAttribute(FacesContext.getCurrentInstance(), "eventoBean");
if (eventoBean != null ) {
this.dataInicioConsulta = eventoBean.getDataInicioConsulta();
this.horaInicioConsulta = eventoBean.getHoraInicioConsulta();
this.consultaObrigatoria = eventoBean.isConsultaObrigatoria();
SessaoUtil.removeRequestAttribute(FacesContext.getCurrentInstance(), "eventoBean");
}
Ou seja, eu posso chamar o método novoEvento() de outros lugares que não serão necessariamente redirects e então não terei nada a manter.
Olhei a documentação de Flash e vi que ela possui 8 métodos, mas nenhum que permita verificar se existe o respectivo objeto na flash e eu preciso desse teste para não deixar a coisa presa demais e ter mais flexibilidade.
Nesse caso aí de cima, nem sempre os dados de data e hora serão informados na requisição anterior.
O que vocês acham?
Obrigado a todos.