Boa tarde pessoal.
Estou com um probleminha na minha aplicação web. Não sei por qual motivo meu managed bean não esta instanciando meu objeto. Quando preciso passar um atributo para este objeto via inputText recebo uma exception acusando que meu objeto retornou nulo. Abaixo segue minhas classes:
Matricula
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<ui:composition template="/_template.xhtml">
<ui:define name="corpo">
<h:form id="formulario">
<h2>Matrículas</h2>
<p:tabView>
<p:tab title="Matrículas">
<fieldset>
<legend>Listagem</legend>
<h:form id="listagem">
<p:dataTable id="matriculas" var="matriculas" value="#{matriculaBean.matriculas}"
emptyMessage="Nenhuma matrícula encontrada."
selectionMode="single" selection="#{matriculaBean.matricula}"
rowKey="#{matriculas.id}">
<p:column id="nome" filterBy="#{matriculas.nome}" headerText="Nome" >
<h:outputText value="#{matriculas.nome}" />
</p:column>
<p:column id="apelido" filterBy="#{matriculas.apelido}" headerText="Apelido" >
<h:outputText value="#{matriculas.apelido}" />
</p:column>
<p:column id="cpf" filterBy="#{matriculas.cpf}" headerText="CPF" >
<h:outputText value="#{matriculas.cpf}" />
</p:column>
<f:facet name="footer">
<p:commandButton id="novo" value="Novo" type="button"
onclick="matriculaDialogo.show();" >
<f:ajax execute=":formulario" />
</p:commandButton>
<p:commandButton id="editar" value="Editar" type="button"
onclick="matriculaDialogo.show();" update="formulario" >
<f:ajax execute="@this" render="@form" />
</p:commandButton>
</f:facet>
</p:dataTable>
<p:dialog id="formulario" header="Detalhes da Matrícula" widgetVar="matriculaDialogo" modal="true" dynamic="true" >
<fieldset>
<legend>Matricula - TESTE</legend>
<h:panelGrid columns="2" >
<h:outputLabel value="Nome:" />
<p:inputText value="#{matriculaBean.matricula.nome}" />
<h:outputLabel value="Apelido:" />
<p:inputText value="#{matriculaBean.matricula.apelido}" />
<h:outputLabel value="Email:" />
<p:inputText value="#{matriculaBean.matricula.email}" />
<p:commandButton value="Gravar" action="#{matriculaBean.grava}" oncomplete="matriculaDialogo.hide()" onclick="matricula" >
<f:ajax execute="@this" render="@form" />
</p:commandButton>
</h:panelGrid>
</fieldset>
</p:dialog>
</h:form>
</fieldset>
</p:tab>
</p:tabView>
</h:form>
</ui:define>
</ui:composition>
</html>
Aqui meu Managed Bean
package br.com.enterprisestoq.bean;
import java.io.Serializable;
import java.util.GregorianCalendar;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import br.com.enterprisestoq.dao.DAO;
import br.com.enterprisestoq.modelos.EstadoCivil;
import br.com.enterprisestoq.modelos.Matricula;
@ManagedBean
@ViewScoped
public class MatriculaBean implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private List<Matricula> matriculas;
private Matricula matricula = new Matricula();
private Long idEstadoCivil;
public String grava() {
this.matricula.setDataInclusao(new GregorianCalendar().getTime());
EstadoCivil estadoCivil = new DAO<EstadoCivil>(EstadoCivil.class)
.buscaPorId(idEstadoCivil);
this.matricula.setEstadoCivil(estadoCivil);
DAO<Matricula> dao = new DAO<Matricula>(Matricula.class);
dao.adiciona(this.matricula);
this.matricula = new Matricula();
return "matricula";
}
public List<Matricula> getMatriculas() {
DAO<Matricula> dao = new DAO<Matricula>(Matricula.class);
this.matriculas = dao.listaTodos();
return matriculas;
}
public void setMatriculas(List<Matricula> matriculas) {
this.matriculas = matriculas;
}
public Matricula getMatricula() {
return this.matricula;
}
public void setMatricula(Matricula matricula) {
this.matricula = matricula;
}
public Long getIdEstadoCivil() {
return idEstadoCivil;
}
public void setIdEstadoCivil(Long idEstadoCivil) {
this.idEstadoCivil = idEstadoCivil;
}
}
E por úlitmo o erro que estou recebendo:
AVISO: /administrativo/matricula.xhtml @68,66 value="#{matriculaBean.matricula.nome}": Target Unreachable, 'matricula' returned null
javax.el.PropertyNotFoundException: /administrativo/matricula.xhtml @68,66 value="#{matriculaBean.matricula.nome}": Target Unreachable, 'matricula' returned null
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
at org.primefaces.renderkit.InputRenderer.getConverter(InputRenderer.java:162)
at org.primefaces.renderkit.InputRenderer.getConvertedValue(InputRenderer.java:175)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1028)
at javax.faces.component.UIInput.validate(UIInput.java:958)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1209)
at javax.faces.component.UIInput.processValidators(UIInput.java:698)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1086)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1086)
at org.primefaces.component.dialog.Dialog.processValidators(Dialog.java:355)
at javax.faces.component.UIForm.processValidators(UIForm.java:244)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1086)
at org.primefaces.component.tabview.TabView.processValidators(TabView.java:330)
at javax.faces.component.UIForm.processValidators(UIForm.java:244)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1086)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1086)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1165)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:508)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
21/03/2012 15:51:56 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/enterprisestoq] threw exception [/administrativo/matricula.xhtml @68,66 value="#{matriculaBean.matricula.nome}": Target Unreachable, 'matricula' returned null] with root cause
javax.el.PropertyNotFoundException: /administrativo/matricula.xhtml @68,66 value="#{matriculaBean.matricula.nome}": Target Unreachable, 'matricula' returned null
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
at org.primefaces.renderkit.InputRenderer.getConverter(InputRenderer.java:162)
at org.primefaces.renderkit.InputRenderer.getConvertedValue(InputRenderer.java:175)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1028)
at javax.faces.component.UIInput.validate(UIInput.java:958)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1209)
at javax.faces.component.UIInput.processValidators(UIInput.java:698)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1086)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1086)
at org.primefaces.component.dialog.Dialog.processValidators(Dialog.java:355)
at javax.faces.component.UIForm.processValidators(UIForm.java:244)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1086)
at org.primefaces.component.tabview.TabView.processValidators(TabView.java:330)
at javax.faces.component.UIForm.processValidators(UIForm.java:244)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1086)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1086)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1165)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:508)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Obrigado