E ai galera do GUJ,
Estou criando uma aplicação usando Java EE 6 e estou com problemas com relação a injeção de dependencias usando CDI.
Na aplicação tenho o pessoa.xhtml
<h:body>
<div id="pessoa">
<h:form id="formPessoa">
<h:messages for="formPessoa"/>
<h:panelGrid columns="3">
<h:outputLabel for="id" value="Código: " />
<h:inputText id="id" value="#{pessoaMB.pessoa.id}"/>
<h:message for="id" />
<h:outputLabel for="cpfCnpj" value="CPF/CNPJ: " />
<h:inputText id="cpfCnpj" value="#{pessoaMB.pessoa.cpfCnpj}"/>
<h:message for="cpfCnpj" />
<h:outputLabel for="rgIe" value="RG/Inscrição Estadual: " />
<h:inputText id="rgIe" value="#{pessoaMB.pessoa.rgIe}"/>
</h:panelGrid>
</h:form>
</div>
</h:body>
E seu managed bean PessoaMB, anotado como Named:
@Named
@SessionScoped
public class PessoaMB implements Serializable {
private Pessoa pessoa;
public PessoaMB() {
this.pessoa = new Pessoa();
} //fim do construtor
public Pessoa getPessoa() {
return pessoa;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
} //fim da classe
O problema é que não consigo recuperar os valores atribuidos ao PessoaMB no meu managed bean EmpresaMB, por exemplo.
A tela do EmpresaMB (foi utilizado o ui:include para adicionar os campos de pessoa)
<ui:composition template="/resources/template.xhtml">
<ui:define name="title">
<h:outputText value="Cadastro de Empresa"/>
</ui:define>
<ui:define name="content">
<h:form id="formEmpresa">
<ui:include src="/cadastro/pessoa/pessoa.xhtml" />
<h:commandButton id="novo" action="#{empresaMB.newEmpresa}" value="Novo" />
<h:commandButton id="salvar" action="#{empresaMB.insert}" value="Salvar" />
</h:form>
</ui:define>
</ui:composition>
E o EmpresaMB
@Named
@SessionScoped
public class EmpresaMB implements Serializable {
@EJB
private EmpresaEJBRemote empresaEJB;
private Empresa empresa;
@Inject
private PessoaMB pessoaMB;
public String insert() {
pessoaMB = this.getPessoaMB();
empresa.setId(pessoaMB.getPessoa().getId());
empresaEJB.insert(empresa);
return "/cadastro/empresa/empresa";
}
public String newEmpresa() {
pessoaMB = new PessoaMB();
return "/cadastro/empresa/empresa";
}
//getters e setter, os getters e setters de PessoaMB foram adicionados
} //fim da classe
Se alguem puder me ajudar…
Obrigado…