[RESOLVIDO]Alimentar um objeto de um beam a partir de um outro beam

Boa tarde,

Estou precisando da seguinte ajuda, estou tentando alimentar um objeto de um beam a partir de um outro beam, por exemplo:
animalBeam

public String detalhaAnimal(){
	AnimalRN rn = new AnimalRN();
	int qtd = rn.qtdRegSelecionados(animais, selecionados);
	if(qtd > 1){
		mensagem = new FacesMessage("Selecione somente um Animal!");
	}else{
		if(qtd <= 0){
			mensagem = new FacesMessage("Selecione um Animal!");
		}else{
			this.animal = rn.animal_id(rn.idRegSelecionados(animais, selecionados).get(0));//carrega o objeto de acordo co o objeto selecionado
			//o codigo abaixo é onde esta dando problema...
			FotoBean fb = new FotoBean();
			Foto foto = new Foto();
			foto.setAnimal(this.animal);
			fb.setFoto(foto);

			return "DetalhaAnimal";
		}
	}
	contexto.addMessage(null, mensagem);
	return null;
}

FotoBeam

@ManagedBean(name="fotoBean")
@SessionScoped
public class FotoBean {
	private Foto foto = new Foto();

	publicFotoBeam(){
		System.out.println(this.foto.getAnimal().getId_animal());//só para testar se o objeto vem carregado
	}
	.
	.
	.

o que acontece, meu objeto sempre vem como null, não to conseguindo alimentar este objeto, se alguem ai souber de algum jeito fico grato pela ajuda

Claro que esta nulo, pois o jsf estanciou um bean do tipo FotoBean e voce outro, ou seja voce colocou o objeto foto no lugar errado

o que voce pode fazer para funcionar é:

1 - passar o id do animal como parametro para a pagina que usa o bean foto bean e usar o id para carregar a foto
2 - no metodo detalhaAnimal inves de criar o fotoBean voce pegaria o hashmap da sessao e colocaria a foto nesse hashmap e no bean fotobean voce pegaria a foto da sessao

a meu ver voce tem essas duas opções…

CristianPalmaSola10 ,
era como tnha imaginado, ao construir a arvore de componentes ele iria ficar nulo correto? poderia exemplificar a forma número 2 que vc comentou, a 1 deu certo.

seria assim


FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("foto", foto);

depois

FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("foto");

primeiro guardei um obj com um identicador unico no caso foto e depois o recuperei usando o identficador…

mas para fazer isso o escopo deve ser session ou não interfere?

CristianPalmaSola10 ,

grato pela colaboração.

Neste casso o escopo não interfere em nada…