[Resolvido] @RequestScoped, como manter os atributos?

Oi, sou eu de novo :lol:

estou com um probleminha porque preciso usar @RequestScoped (motivos de infra estrutura)
e preciso fazer uma função com ajax, e estou perdendo alguns atributos da minha classe por isso.

tenho um List que é perdido a cada requisição ajax (f:ajax), tem como eu guardar este
atributo no próprio browser ou de outro jeito?

acontece é que tenho diversas requisições ajax na página e uma delas popula a Lista de strings
que é usada por um outro componente, e na hora d fazer uma requisição com este componente que
usa lista não é possivel pois ele perde a lista :cry:

muito obrigado

Kra, n sei o q vc quer dizer com “infraestrutura” mas, escopos como @ConversationScoped e o @ViewScoped servem p/ isso mesmo.

não vou poder manter nada na sessão, tentei o viewScoped e ficou pior do que o requestScoped hahahaha, mas posso tentar adaptar, é pq pensei q não ia ajudar…

eu estou adaptando um código feito em @sessionscoped pq não posso usar sessão esse viewScoped usa sessão?

antes de usar jsf eu usava os valores salvos no elemento html
e fazia o request com essa informação, não existe um meio de
fazer isso? alguma tag diferente, primefaces talvez?

Qualquer coisa além de @RequestScoped usa sessão e não há outro meio de fazer o q vc quer. Informações ficam nos ManagedBeans e a duração de um ManagedBean depende do seu escopo.

que chato, acho que deviam criar uma alternativa para isso, em questão
de escabilidade de servidores a melhor prática é não usar sessões para
que eu possa fazer com que cada requisição possa ser atendida por um
computador no servidor sem ter que usar clusters.

resolvi que não vou usar o JSF para os ajax, vou usar javascript e webservices

muito obrigado

Salvar todo o estado atual da aplicação no cliente certamente ajuda a reduzir a carga no servidor. Porém sendo JSF uma API stateful eu acho bem pouco provável q uma solução desse tipo seja viável, já q p/ vc implementar algo assim vc tb precisaria salvar o estado da árvore de componentes no cliente. Existe hoje, na verdade, um meio de vc salvar a árvore de componentes no cliente, porém o uso desse recurso denigre bastante a performance em cada requisição, especialmente se a view for complexa.

De qualquer forma, se vc está procurando por uma solução stateless então o JSF com certeza é essa solução!

[size=18]Resposta: [/size]
com JSF não é possivel fazer request em ajax (e manter os dados guardados) sem utilizar sessão, é aconcelhavel utilizar @ConversationScoped ou @ViewScoped

caso não possa utilizar sessão faça o request com javascript e Servlet e guarde os dados no browser (algum campo do formulario ou variavel js)