Boa tarde senhores
Eu ja desenvolvi algumas coisas em java para web, tanto com jsp puro (mas não profissional) e JSF.
Só que eu estou começando um novo projeto e li alguns artigos falando sobre o desempenho do JSF. Nele fala muito sobre o uso de beans com escopo request ao invés de session ou view por questão de desempenho. Mas também defende o uso so view scope para quem usa ajax.
A questão é que no sistema que desenvolvi com JSF, eu fiz ele inteiro com ViewScoped, tentando fazer tudo como se fosse programação Desktop. Nos meus Beans, era mantido todos os dados de cada tela, fazendo que o consumo de memória fosse maior.
Ai eu tentei fazer em RequestScoped, ai eu penei. O meu sistema é formado sempre por duas páginas, uma que é a busca dos dados do cadastro e outra que é o registro, e ambos usam o mesmo bean. No formulario da pesquisa, eu tenho os campos como tipo de pesquisa, condição e outros e no table, eu faço via parametro a passagem do id do registro. Coloquei no bean um @PostConstruct para buscar esse parametro e se existir, buscar do banco o objeto, liberando para o formulario de registro editá-lo.
Se eu quiser que os dados do formulário de cadastro sejam mantidos, eu tenho que colocar input’s dos tipo hidden, certo? Mas se o bean for request, toda hora tem que se buscar os dados do banco, isso não vai deprecisar o desempenho, pois quero usar ajax para determinadas situações, como exibir ou não um campo qualquer, alimentar selectOneMenu alinhados, e tal.
Não sei se fui claro, mas o que eu mais queria é uma luz em termos de como padronizar as transições de tela e o padrão que eu deveria montar o projeto, como uso de jpa e cdi, pois no projeto anterior eu desistir de usar JPA, pois toda hora eu ganhava um lazyInicializationException, lembrando que usava com viewScoped.
No meu ideial, seria montar um padrão para que todos os meus cadastros seguissem esse padrão.
Se alguem tiver algum exemplo ou souber de um lugar para eu ler sobre isso vou ficar muito grato
um abraço a todos