Mensagens entre Managers Bean

6 respostas
Psycopata

Existe alguma forma de enviar mensagens entre managers beans a medida que se vai navegadno?

Assim, eu tenho a tela A e a tela B e os managers bean MA e MB. Dai digamos que a data seja comum para dos dois, porém ela é definida na tela A (setando o manager bean MA). Daí é clicado num link e vai para tela B. Então, eu quero setar o MB com o mesmo valor de Data do MA. Existe alguma forma de fazer essa comunicação?

6 Respostas

spycall

Se o scopo do seu MA for session vc pode recuperálo da sessão e e atribuir o var para o MB

Psycopata

Como?

spycall
public class JSFUtil {
        public static ExternalContext getExternalContext() {
	        FacesContext facesContext = FacesContext.getCurrentInstance();
	        if (facesContext != null) {
		         return facesContext.getExternalContext();
	        } else {
		         return null;
	        }
        }

        public static Object getSessionAtribute(String attributeName) {
	       Map attrMap = getExternalContext().getSessionMap();
	       return attrMap.get(attributeName);
        }
}

public class MB{
        private Date date;
        MA ma = (MA) JSFUtil.getSessionAtribute("o que esta no faces-config");
        date = ma.getDate();
}
Psycopata

Uma dúvida, se eu fizer assim, pode ocorrer que pegar valores errados, uma vez que terá várias instancias abertas?

spycall

Na sessão só vai ter uma para cada usúario

Psycopata

Valeu, vou testar

Criado 11 de março de 2008
Ultima resposta 11 de mar. de 2008
Respostas 6
Participantes 2