Ajuda sobre sessionScope no ManagedBean

5 respostas
M

bom dia pessoal…
estou com uma problema estranho! estou utilizando primefaces e no meu ManagedBean eu estou utilizando o scopo “@SessionScope”. Quando minha tela é carregada e eu clico em um evendo que chama um metodo no ManagedBean os dados q ja estavam em memoria sao perdidos. ex: quando entro na minha tela que tem uma grid é verificado se meu List é null e se for faz um select e carrega a lista e aparece na tela, e no evento selecao da grid chama um metodo no ManagedBean e a lista fica null novamente. isso acontece ate com evento de botao…

oq pode ser???

pessoal desde ja agradeço pela colaboração…

5 Respostas

fabiozanardi

coloca o codigo do seu managed bean para a gente dar uma olhada, voce criou a listagem inicial em 1 método @PostConstruct?

M

pior que nao estou com o fonte aki, posso postar apos o almoço, mas eu sou iniciante em jsf e nao estou utilizando @PostConstruct, fiz algo bem simples coloquei no getListaPais a chamada para o select ex:

@RequestScoped
@ManagedBean(name = "paisAction")
public class PaisAction implements Serializable{

List<Pais> listaPais;

   public List<Pais>getListaPais(){
      if(listaPais==null)
         faz o select...;
      return listaPais;
   }
}

fiz algo assim. se isso ja ajudar!!!
eu nunca utilizei @PostConstruct c vc tiver alguma documentacao sobre isso me passa por favor.

obrigado

fabiozanardi

Deve estar retornando algum erro no log do eclipse / netbeans, cole aqui por favor

flw

Hebert_Coelho

Você está utilizando Session ou Request? No código que você postou está Request.

M

entao pessoal demorei ne hehehehe… Mas eu escrevi a action errada acima eu estava sem codigo fonte acabei escrevendo errado mas esta ai!

@SessionScoped
@ManagedBean(name = "paisAction")
public class PaisAction extends BaseAction {

	private Pais pais;
	private List<Pais> listaPais;
	private PaisDao paisDao = new PaisDao();
	
	public PaisAction() {
		
	}

	public void grava(ActionEvent actionEvent) throws Exception {
		if (!validacao(pais))
			return;

		paisDao.grava(pais);
		super.grava(actionEvent);
	}

	public void onRowSelect(SelectEvent event) {
		System.out.println(pais.getId());
	}

	public Pais getPais() {
		if (pais == null)
			pais = new Pais();
		return pais;
	}

	public void setPais(Pais pais) {
		this.pais = pais;
	}

	public List<Pais> getListaPais() {
		if (listaPais == null || listaPais.isEmpty())
			listaPais = paisDao.selecaoPais();
		return listaPais;
	}

	public void setListaPais(List<Pais> listaPais) {
		this.listaPais = listaPais;
	}
}

o problema é q nao gera erro, mas nao esta guardando os valores quando chamo um metodo no magagedBean apartir de um click na grid por exemplo. Ate a lista que esta alimentando a grid fica null e faz o select novamente… esta perdendo os valores do managedBean.

Criado 26 de maio de 2012
Ultima resposta 29 de mai. de 2012
Respostas 5
Participantes 3