Remover o CDI @SessionScope da sessão do usuario?

8 respostas
marcioguj

Olá,

Eu gostaria de saber como faço pra remover o CDI @SessionScope da sessão do usuario?  ja tentei usando FacesContext, ja pesquisei e vi que o CDI esta no HttpSession.

8 Respostas

fabiozanardi

Olá Marcio, blz?

eu não entendi exatamente o que quis dizer, você quer matar a sessão do usuário?

o CDI é a injeção de dependências, ou você utiliza no seu projeto ou não utiliza.

Hebert_Coelho

Vc ta querendo matar um ManagedBean de sessão na mão? É isso?

marcioguj

Eu quero remover depois que eu injetar no ManagerBean(JSF). Ele fica na sessão @SessionScope(CDI) depois que eu submeto o formulario os campos ficam o valor. Entendeu? Tentei remover como se foce um MangerBean do JSF mas não funcinona tipo:

HttpSession session = request.getSession(); 
	FacesContext.getCurrentInstance().getExternalContext()
				.getSessionMap().remove("regiaoMB");// nome do meu CDI @SessionScope
Hebert_Coelho

Coloca como você declara seu MB?

Uma solução que eu vi aqui é criar um método de reset no seu MB e invocá-lo.

Tipo regiaoMB.reset();

marcioguj

Eu quero matar o manageBean do CDI(@SessionScope)

@SessionScope
@Named(name="regiaMB")
public class RegiaoMB implements Serializable{//ISSO QUE EU QUER MATAR O CDI

  //aqui metodos 
}
Hebert_Coelho

Achei o erro…
@SessionScope
@Named(name=“regiaMB”)
public class RegiaoMB

E olha agora…
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove(“regiaoMB”);

marcioguj

No codigo ta certo, porque eu digitei agora de cabeça ai errei. O CID não usa a interface FacesContext do JSF. Eu li que o CDI e criado como HttpSession, então para remove-lo seria algo tipo:

HttpSession  session = HttpSession.  //ai não sei mas o que fazer
fabiozanardi

porque voce nao utiliza viewscoped?

Criado 19 de dezembro de 2011
Ultima resposta 19 de dez. de 2011
Respostas 8
Participantes 3