Olá amigos do GUJ. Não estou conseguindo cadastrar um Aluno em minha aplicação. Já testei algumas soluções vistas aqui no grupo mas não consegui resolver mesmo assim. Esse erro dá assim que chamo a tela de cadastro.
Segue o erro que está apresentando e os códigos refentes a aluno. Se alguém puder dizer onde estou errando, desde já agradeço.
11:48:08,447 Grave [javax.enterprise.resource.webcontainer.jsf.application] (http--127.0.0.1-8080-2) Error Rendering View[/cadastroAluno.xhtml]: javax.el.PropertyNotFoundException: /cadastroAluno.xhtml @45,53 value="#{alunoBean.aluno.endereco.rua}": The class 'com.gugawag.projeto.modelo.Endereco' does not have a readable property 'rua'.
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:111) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIOutput.getValue(UIOutput.java:169) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at org.primefaces.util.ComponentUtils.getValueToRender(ComponentUtils.java:67) [primefaces-3.2.jar:]
at org.primefaces.component.inputtext.InputTextRenderer.encodeMarkup(InputTextRenderer.java:79) [primefaces-3.2.jar:]
at org.primefaces.component.inputtext.InputTextRenderer.encodeEnd(InputTextRenderer.java:50) [primefaces-3.2.jar:]
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:57) [primefaces-3.2.jar:]
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:45) [primefaces-3.2.jar:]
at org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:185) [primefaces-3.2.jar:]
at org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:108) [primefaces-3.2.jar:]
at org.primefaces.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:55) [primefaces-3.2.jar:]
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at org.richfaces.renderkit.RendererBase.renderChildren(RendererBase.java:276) [richfaces-components-ui-4.1.0.20110910-M2.jar:]
at org.richfaces.renderkit.html.PanelRenderer.encodeEnd(PanelRenderer.java:181) [richfaces-components-ui-4.1.0.20110910-M2.jar:]
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1763) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:57) [primefaces-3.2.jar:]
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:45) [primefaces-3.2.jar:]
at org.primefaces.component.fieldset.FieldsetRenderer.encodeContent(FieldsetRenderer.java:86) [primefaces-3.2.jar:]
at org.primefaces.component.fieldset.FieldsetRenderer.encodeMarkup(FieldsetRenderer.java:68) [primefaces-3.2.jar:]
at org.primefaces.component.fieldset.FieldsetRenderer.encodeEnd(FieldsetRenderer.java:45) [primefaces-3.2.jar:]
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1763) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:402) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.7.Final.jar:]
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.1.0.CR1b.jar:7.1.0.CR1b]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:151) [jboss-as-web-7.1.0.CR1b.jar:7.1.0.CR1b]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [jbossweb-7.0.7.Final.jar:]
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:897) [jbossweb-7.0.7.Final.jar:]
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:626) [jbossweb-7.0.7.Final.jar:]
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:2033) [jbossweb-7.0.7.Final.jar:]
at java.lang.Thread.run(Thread.java:722) [:1.7.0_02]
11:48:08,452 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/projeto].[Faces Servlet]] (http--127.0.0.1-8080-2) Servlet.service() for servlet Faces Servlet threw exception: javax.el.PropertyNotFoundException: /cadastroAluno.xhtml @45,53 value="#{alunoBean.aluno.endereco.rua}": The class 'com.gugawag.projeto.modelo.Endereco' does not have a readable property 'rua'.
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:111) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIOutput.getValue(UIOutput.java:169) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at org.primefaces.util.ComponentUtils.getValueToRender(ComponentUtils.java:67) [primefaces-3.2.jar:]
at org.primefaces.component.inputtext.InputTextRenderer.encodeMarkup(InputTextRenderer.java:79) [primefaces-3.2.jar:]
at org.primefaces.component.inputtext.InputTextRenderer.encodeEnd(InputTextRenderer.java:50) [primefaces-3.2.jar:]
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:57) [primefaces-3.2.jar:]
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:45) [primefaces-3.2.jar:]
at org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:185) [primefaces-3.2.jar:]
at org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:108) [primefaces-3.2.jar:]
at org.primefaces.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:55) [primefaces-3.2.jar:]
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at org.richfaces.renderkit.RendererBase.renderChildren(RendererBase.java:276) [richfaces-components-ui-4.1.0.20110910-M2.jar:]
at org.richfaces.renderkit.html.PanelRenderer.encodeEnd(PanelRenderer.java:181) [richfaces-components-ui-4.1.0.20110910-M2.jar:]
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1763) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:57) [primefaces-3.2.jar:]
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:45) [primefaces-3.2.jar:]
at org.primefaces.component.fieldset.FieldsetRenderer.encodeContent(FieldsetRenderer.java:86) [primefaces-3.2.jar:]
at org.primefaces.component.fieldset.FieldsetRenderer.encodeMarkup(FieldsetRenderer.java:68) [primefaces-3.2.jar:]
at org.primefaces.component.fieldset.FieldsetRenderer.encodeEnd(FieldsetRenderer.java:45) [primefaces-3.2.jar:]
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1763) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:402) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594) [jboss-jsf-api_2.1_spec-2.0.0.Beta1.jar:2.0.0.Beta1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.7.Final.jar:]
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.1.0.CR1b.jar:7.1.0.CR1b]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:151) [jboss-as-web-7.1.0.CR1b.jar:7.1.0.CR1b]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [jbossweb-7.0.7.Final.jar:]
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:897) [jbossweb-7.0.7.Final.jar:]
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:626) [jbossweb-7.0.7.Final.jar:]
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:2033) [jbossweb-7.0.7.Final.jar:]
at java.lang.Thread.run(Thread.java:722) [:1.7.0_02]
<!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:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:rich="http://richfaces.org/rich">
<ui:composition template="template.xhtml">
<ui:define name="titulo">Cadastro de Aluno</ui:define>
<ui:define name="principal">
<h:form>
<h:panelGrid columns="2">
<p:panel id="panel" header="Cadastrar Aluno" style="margin-bottom:20px;">
<p:focus context="panel"/>
<h:panelGrid columns="3">
<h:outputText value="Nome: " style="font-weight:bold"/>
<p:inputText id="nome" size="29" value="#{alunoBean.aluno.nome}" required="true"
requiredMessage="Por favor, informe o Nome."/>
<h:outputText value="Matrícula: " style="font-weight:bold"/>
<p:inputText id="matricula" size="29" value="#{alunoBean.aluno.matricula}" required="true"
requiredMessage="Por favor, informe a Matrícula."/>
<h:outputText value="Data de Nascimento:" style="font-weight:bold"/>
<p:inputMask mask="99/99/9999" id="dataNascimento" size="29" value="#{alunoBean.aluno.dataNascimento}" required="true"
display="inline" requiredMessage="Por favor, informe a Data de Nascimento.">
<f:convertDateTime pattern="dd/MM/yyyy" timeZone="GMT-03:00" />
</p:inputMask>
<h:outputText value="Rua: " style="font-weight:bold"/>
<p:inputText id="rua" size="29" value="#{alunoBean.aluno.endereco.rua}" required="true"
requiredMessage="Por favor, informe a Rua."/>
<h:outputText value="Número: " style="font-weight:bold"/>
<p:inputText id="numero" size="29" value="#{alunoBean.aluno.endereco.numero}" required="true"
requiredMessage="Por favor, informe o número."/>
<h:outputText value="Cidade: " style="font-weight:bold"/>
<p:inputText id="cidade" size="29" value="#{alunoBean.aluno.endereco.cidade}" required="true"
requiredMessage="Por favor, informe a Cidade."/>
<h:outputLabel value="Uf:" style="font-weight:bold"/>
<h:selectOneMenu value="#{alunoBean.aluno.uf}">
<f:selectItems value="#{alunoBean.ufs}"/>
</h:selectOneMenu>
<h:outputText value="Complemento: " style="font-weight:bold"/>
<p:inputText id="complemento" size="29" value="#{alunoBean.aluno.endereco.complemento}" required="true"
requiredMessage="Por favor, informe o complemento."/>
<h:outputText value="Cep: " style="font-weight:bold"/>
<p:inputText id="cep" size="29" value="#{alunoBean.aluno.endereco.cep}" required="true"
requiredMessage="Por favor, informe o cep."/>
</h:panelGrid>
</p:panel>
</h:panelGrid>
<p:spacer width="4" height="10" />
<h:commandButton update="panel" value="#{msg['aluno.btCadastro.nome']}"
action="#{alunoBean.cadastrar()}"/>
<p:spacer width="10" height="10" />
<h:commandButton type="reset" value=" Limpar " />
</h:form>
<h:messages/>
</ui:define>
</ui:composition>
</html>
package com.gugawag.projeto.modelo;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
public class Aluno implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private Long id;
@Column
private Uf uf;
@Column
private String nome;
@Column
private String matricula;
@Temporal(TemporalType.DATE)
private Date dataNascimento;
@OneToOne(cascade=CascadeType.ALL)
private Endereco endereco;
public Aluno(){
this(null, null, null, null);
}
public Aluno(String nome, String matricula, Date dataNascimento, Uf uf) {
super();
this.endereco = new Endereco();
this.nome = nome;
this.matricula = matricula;
this.dataNascimento = dataNascimento;
this.uf = uf;
}
public Uf getUf() {
return uf;
}
public void setUf(Uf uf) {
this.uf = uf;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome.toUpperCase();
}
public String getMatricula() {
return matricula;
}
public void setMatricula(String matricula) {
this.matricula = matricula;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Date getDataNascimento() {
return dataNascimento;
}
public void setDataNascimento(Date dataNascimento) {
this.dataNascimento = dataNascimento;
}
public Endereco getEndereco() {
return endereco;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
}
package com.gugawag.projeto.beans;
import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import com.gugawag.projeto.modelo.Aluno;
import com.gugawag.projeto.modelo.Uf;
import com.gugawag.projeto.modelo.Usuario;
import com.gugawag.projeto.repositorio.AlunoRepositorio;
import com.gugawag.projeto.service.AlunoJahCadastradoException;
import com.gugawag.projeto.service.CadastroAlunoService;
@ManagedBean
@SessionScoped
public class AlunoBean{
private Aluno aluno;
private String nomeAtual;
private String matriculaAtual;
private Uf ufAtual;
private Date dataNascAtual;
public AlunoBean(){
aluno = new Aluno();
}
@EJB
private CadastroAlunoService alunoService;
@EJB
private AlunoRepositorio alunoRepositorio;
public Aluno getAluno() {
return aluno;
}
public void setAluno(Aluno aluno) {
this.aluno = aluno;
}
public List<Aluno> getAlunos(){
return alunoService.getAlunos();
}
public String editar(Aluno aluno){
nomeAtual = aluno.getNome();
matriculaAtual = aluno.getMatricula();
dataNascAtual = aluno.getDataNascimento();
ufAtual = aluno.getUf();
this.aluno = aluno;
return "editarAluno";
}
public String editar(String novoNome, String novaMatricula, Date novaData, Uf novoUf){
if(nomeAtual.equalsIgnoreCase(novoNome) && matriculaAtual.equalsIgnoreCase(novaMatricula)
&& dataNascAtual.equals(novaData) && ufAtual.equals(novoUf)){
Util.acrescentaMensagem("aluno.alunoNaoAlterado", new String[]{aluno.getNome()});
}else{
Util.acrescentaMensagem("aluno.alunoAlterado", new String[]{aluno.getNome()});
}
alunoRepositorio.atualizar(aluno);
this.aluno = new Aluno();
return "listagemAlunos";
}
public Uf[] getUfs(){
return Uf.values();
}
public String cadastrar(){
try {
alunoService.cadastrarAluno(aluno);
aluno = new Aluno();
Util.acrescentaMensagem("aluno.cadastrosucesso", new String[]{aluno.getNome()});
} catch (AlunoJahCadastradoException e) {
Util.acrescentaMensagem("aluno.alunojahcadastrado", new String[]{aluno.getNome()});
}
return null;
}
public String remover(Aluno aluno){
alunoRepositorio.remover(aluno);
return null;
}
}
package com.gugawag.projeto.service;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import com.gugawag.projeto.modelo.Aluno;
import com.gugawag.projeto.repositorio.AlunoRepositorio;
@Stateless
public class CadastroAlunoService {
@EJB
private AlunoRepositorio alunoRepositorio;
public void cadastrarAluno(Aluno aluno) throws AlunoJahCadastradoException{
System.out.println("ok");
Aluno alunoPesquisado = alunoRepositorio.getAlunoPorNome(aluno.getNome());
if (alunoPesquisado != null){
throw new AlunoJahCadastradoException("Aluno " + aluno + " ja cadastrado!");
}
alunoRepositorio.cadastrarAluno(new Aluno(aluno.getNome(), aluno.getMatricula(),
aluno.getDataNascimento(), aluno.getUf()));
}
public List<Aluno> getAlunos() {
return alunoRepositorio.getAlunos();
}
}
package com.gugawag.projeto.repositorio;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import com.gugawag.projeto.modelo.Aluno;
@Stateless
public class AlunoRepositorio {
@PersistenceContext
private EntityManager em;
public void cadastrarAluno(Aluno aluno){
em.persist(aluno);
}
public void remover(Aluno aluno) {
aluno = em.merge(aluno);
em.remove(aluno);
}
@SuppressWarnings("unchecked")
public List<Aluno> getAlunos(){
return em.createQuery("from Aluno").getResultList();
}
@SuppressWarnings("unchecked")
public Aluno getAlunoPorNome(String nome){
List<Aluno> alunos = em.createQuery("from Aluno a where a.nome=:nome").setParameter("nome", nome).getResultList();
if (alunos != null && alunos.size()>0){
return alunos.get(0);
}
return null;
}
public void atualizar(Aluno aluno) {
em.merge(aluno);
}
}