Olá pessoal, alguém pode me explicar ou indicar algum material que explique quando usar o session scope e o request scope no nosso querido faces-config.xml? Não entendo muito bem qual o impacto que realmente terei mudando de um para outro… Uso tudo request, exceto classes de filter que precisam realmente estar em session.
Cara é o seguinte, eu já trabalhei com o RichFaces e JSF com Facelets, e apanhava bastante desse negócio até eu pegar algo pra ler. Tem que procurar no google infelizmente não tenho materiais sobre isso, mas posso tentar lhe ajudar explicando o que sei de cabeça.
Mas é bem simples, quando você acessa uma tela e essa tem um managed bean associado a mesma para por exemplo: exibição de uma grid que é montada no construtor. O java acessa o construtor e incia os métodos chamados, se o scope dessa página tiver definido como session, o java não irá mais passar por esse construtor, pois os valores ali contidos (classe) não serão perdidos. Diferente do request, que toda vez que ele acessa a página e essa está vinculada a um managedbean ele passa pelo construtor, pois com o scope request ele faz uma requisição a cada vez que é acessado o MB.
Você vai encontrar problemas com isso, principalmente se você utiliza formularios acima de uma grid, e da refresh nela com o reRender para inserir os valores e trabalhar com um ajax. Eu aconselho vc dar uma olhada na tag a4j:keepAlive, tem no site do richFaces no liveDemo, porém ele só funciona com facelets, então se você ainda não ta mechendo com Facelets e só com o JSF puro, aconselho vc a começar a mudar pois existem mutios bugs.
Espero ter ajudado, alguem me diga se estiver errado.
M
mauriciorocha665
Obrigado Daniel, isso ajudou bastante. Uso tudo “request”, não senti falta do “session” provavelmente por causa do keepAlive entao. To usando Facelets sim. Vou rever aqui e testar. valeu pela ajuda.