Pessoal boa tarde,
Estou com uma dúvida em relação a passagem de parâmetros entre views utilizando o mesmo bean.
Eu tenho o seguinte cenários:
Duas páginas uma chama-se BankGrid.xhtml e a outra BankForm.xhtml
A página BankGrid, tem a função de listar e exibir os dados, nela mesmo eu consigo excluir os dados, para editar ou inserir um novo eu clico no registro ou clico no botão “Novo”, o qual redireciona para outra página a BankForm. Estou utilizando o mesmo backbean para as duas páginas (não sei se é a melhor abordagem) e a navegação também é controlada pelo backbean, além disso o backbean está com o escopo de view, quando eu seleciono o registro e clico em editar, o registro é selecionado no backbean (selectedRow), no entanto como o escopo o backbean é view, ele é “reconstruído” a cada requisição, ou seja o valor do selectedRow é perdido, para contornar isso eu coloco o valor na sessão:
this.getSessionMap().put("bank", this.selectedRow);
E no construtor eu fiz da seguinte maneira
@Override
@PostConstruct
protected void init() {
this.selectedRow = (Bank) this.getSessionMap().get("bank");
if (this.selectedRow != null)
this.getSessionMap().remove("bank"); // edição ou inserção
else
load(); // list
}
Minha dúvida é se essa abordagem esta correta?
Estou exemplificando na tela mais simples, pois há telas que eu preciso carregar n campos, como cidade, estado, entre outros, todos ficam abaixo do if != null…
Caso tenha faltado alguma informação estou à disposição para maiores esclarecimento.
Agradeço à ajuda.
Obrigado.