JSF - @ScopeConversation com @inject em bean normal

0 respostas
N

Boa noite, tenho uma dúvida, criei um manager bean com escopo de conversation e quiz injetar em beans que estava no manager bean mas não propriamente injetar o managem bean, dá pra fazer isso?

Classe que inicia a conversaçao:
@Named("inicio")
@ConversationScoped
public class CIniciarConversation implements Serializable
{
    private static final long serialVersionUID = 1L;
    private String pagina;
    @Inject
    private Conversation conversation;

    public CIniciarConversation()
    {
	pagina = "Iniciar e ir para Solicitante";
    }

    @PostConstruct
    public void iniciar()
    {
	System.out.println(conversation);
    }

    public void lstNavegar(ActionEvent event)
    {

    }

    public String actNavegar()
    {
	if (conversation.isTransient())
	{
	    conversation.begin();
	} else
	{
	    conversation.end();
	    conversation.begin();
	}
	return "solicitante.jsf";
    }

    public String getPagina()
    {
	return pagina;
    }

    public void setPagina(String pagina)
    {
	this.pagina = pagina;
    }

    public Conversation getConversation()
    {
	return conversation;
    }

    public void setConversation(Conversation conversation)
    {
	this.conversation = conversation;
    }

depois vou tentar injetar solicitante em produto, mas não funciona, alguém sabe pq?

@Named("solicitante")
@ConversationScoped
public class CSolicitante implements Serializable
{
    private static final long serialVersionUID = 1L;
    private String pagina;
    @Inject
    private Conversation conversation;
    @Inject
    private Solicitante solicitante;

    public CSolicitante()
    {
	pagina = "Ir para produto";

    }

    @PostConstruct
    public void iniciar()
    {
	System.out.println(conversation);
    }

    public void lstNavegar(ActionEvent event)
    {

    }

    public String actNavegar()
    {
	solicitante = new Solicitante("Nykel Andersow");
	return "produto.jsf";
    }

    public String getPagina()
    {
	return pagina;
    }

    public void setPagina(String pagina)
    {
	this.pagina = pagina;
    }

    public Conversation getConversation()
    {
	return conversation;
    }

    public void setConversation(Conversation conversation)
    {
	this.conversation = conversation;
    }

    public Solicitante getSolicitante()
    {
	return solicitante;
    }

    public void setSolicitante(Solicitante solicitante)
    {
	this.solicitante = solicitante;
    }
@Named("produto")
@ConversationScoped
public class CProduto implements Serializable
{
    private static final long serialVersionUID = 1L;

    private String pagina;
    @Inject
    private Conversation conversation;

    @Inject
    private Produto produto;

    public CProduto()
    {
	pagina = "Ir para Ocorrencia";
    }

    @PostConstruct
    public void iniciar()
    {
	System.out.println(conversation);
    }

    public void lstNavegar(ActionEvent event)
    {

    }

    public String actNavegar()
    {
	produto = new Produto("E-commerce Padrão");
	return "ocorrencia.jsf";
    }

    public String getPagina()
    {
	return pagina;
    }

    public void setPagina(String pagina)
    {
	this.pagina = pagina;
    }

    public Conversation getConversation()
    {
	return conversation;
    }

    public void setConversation(Conversation conversation)
    {
	this.conversation = conversation;
    }

    public Produto getProduto()
    {
	return produto;
    }

    public void setProduto(Produto produto)
    {
	this.produto = produto;
    }

meus beans estão assim:

public class Solicitante
{
    private String nome;

    public Solicitante(String nome)
    {
	super();
	this.nome = nome;
    }

    public String getNome()
    {
	return nome;
    }

    public void setNome(String nome)
    {
	this.nome = nome;
    }

    @Override
    public String toString()
    {
	return "Solicitante [nome=" + nome + "]";
    }

}




public class Produto
{
    private String descricao;

    public Produto(String descricao)
    {
	super();
	this.descricao = descricao;
    }

    public String getDescricao()
    {
	return descricao;
    }

    public void setDescricao(String descricao)
    {
	this.descricao = descricao;
    }

    @Override
    public String toString()
    {
	return "Produto [descricao=" + descricao + "]";
    }

}

obrigado...

Criado 20 de março de 2013
Respostas 0
Participantes 1