Galera,
Tava analisando umas coisas aqui em JSF2 e me bateu uma duvida.
no faces-config ta dizendo que se retornar uma string sucesso ele vai pra tal pagina, e se retornar falha vai pra outra pagina.
mas ele tambem pede pra declarar o scopo, session, request ou application.
mas ele sempre vai retornar uma string pra saber pra qual pagina seguir, e nao um objeto, pra que especificar o scopo??? :shock: :shock:
tenho uma aplicaçao simples de login e deixei o scopo como request, abri dois browsers diferentes (dois usuarios) e loguei tranquilo.
depois eu mudei pra scopo de sessao, e nao fez absolutamente diferença nenhuma!!!
eu nao consegui compreender o porque de declarar o scopo…alguem poderia me ajudar??
vlw
Pense no seguinte caso em que no seu sistema em determinado momento o usuário vai realizar uma operação e você quer gravar também o usuário que fez essa operação. Como você vai saber qual o usuário que executou essa operação?
Por isso coloque ele na seção e você terá acesso a ele enquanto a sessão durar.
É que neste caso talvez a diferença não tenha aparecido.
Primeiro são duas coisas diferentes:
A String de retorno é para indicar para onde o usuário irá (de acordo com as regras de navegação especificadas) depois de executada a ação.
O escopo é o que define quanto tempo o seu BackingBean irá durar.
Se utilizar escopo de request, a cada nova requisição será criado uma nova instância do seu backing bean, perdendo assim os dados que estavam armazenados a cada nova requisição.
Se você utilizar session o backing bean será instanciado apenas uma vez para uma determinada sessão de um usuário, futuramente só reutilizado sempre que preciso.
Experimente colocar um System.out no construtor do seu backing bean que você vai perceber a diferença.
Espero ter ajudado!
Abraço