Você está na página 1de 33

Tutorial Desenvolvendo uma Aplicao CRUD para Web a

partir de um diagrama de classes da UML


1) Vamos criar uma aplicao que faz realiza as funcionalidades CRUD de todas as entidades
especificadas pelo diagrama de classes abaixo.

2) Crie um novo Dynamic Web Project chamado Projeto_Crud configurado com o Hibernate,
JSF e MySQL.

3) Abra o arquivo persistence.xml dentro da pasta src/META-INF e preencha-o com o seguinte


cdigo:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="Projeto_Crud" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="javax.persistence.jdbc.url"
value="jdbc:mysql://localhost:3306/crud"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password"
value="root"/>
<property name="javax.persistence.jdbc.driver"
value="com.mysql.jdbc.Driver"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"/>
</properties>

</persistence-unit>
</persistence>

4) Dentro da pasta src do Projeto_Crud vamos criar 4 pacotes: modelo, fachada, converters e
beansgerenciados. Para criar um novo pacote dentro da pasta src, basta clicar com o boto
direito do mouse sobre a pasta src e ir em New > Other.. > Package.

5) A estrutura do Projeto deve ficar como mostra a figura abaixo:

6) Agora, vamos criar as classes em Java que representam esse diagrama. Para isso, devemos
criar 4 classes dentro do pacote modelo: Pessoa, Aluno, Curso e Disciplina. Todas devem
conter os atributos especificados no diagrama e as anotaes para realizar a persistncia em
banco de dados. Segue abaixo o cdigo fonte das 4 classes:

Pessoa.java
package modelo;
import java.io.Serializable;
import javax.persistence.*;
import java.util.Date;
@Entity
@Inheritance(strategy = InheritanceType.JOINED)

@Table(name = "pessoa")
public class Pessoa implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "CPF", nullable=false)
private String cpf;
@Basic(optional = false)
@Column(name = "NOME", nullable=false)
private String nome;
@Basic(optional = false)
@Column(name = "DATANASCIMENTO", nullable=false)
private Date dataNascimento;
@Basic(optional = false)
@Column(name = "TELEFONE", nullable=true)
private String telefone;
public Pessoa() {
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Date getDataNascimento() {
return dataNascimento;
}
public void setDataNascimento(Date dataNascimento) {
this.dataNascimento = dataNascimento;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Pessoa)) {
return false;
}
Pessoa other = (Pessoa) object;
if (!(this.getCpf().equals(other.getCpf()))) {
return false;
}
return true;
}
}

Aluno.java
package modelo;
import java.io.Serializable;
import javax.persistence.*;

@Entity
@Table(name = "aluno")
public class Aluno extends Pessoa implements Serializable {
private static final long serialVersionUID = 1L;
@Basic(optional = false)
@Column(name = "RA", nullable=false)
private int ra;
@Basic(optional = false)
@Column(name = "EMAIL", nullable=false)
private String email;
@Basic(optional = false)
@Column(name = "ESCOLARIDADE", nullable=true)
private String escolaridade;
@JoinColumn(name = "CURSO_ID", referencedColumnName = "ID", nullable=false)
@ManyToOne
private Curso curso;
public Aluno() {
}
public int getRa() {
return ra;
}
public void setRa(int ra) {
this.ra = ra;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getEscolaridade() {
return escolaridade;
}
public void setEscolaridade(String escolaridade) {
this.escolaridade = escolaridade;
}
public Curso getCurso() {
return curso;
}
public void setCurso(Curso curso) {
this.curso = curso;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Aluno)) {
return false;
}
Aluno other = (Aluno) object;
if (!(this.getCpf().equals(other.getCpf()))) {
return false;
}
return true;
}
}

Curso.java

package modelo;

import java.io.Serializable;
import javax.persistence.*;
@Entity
@Table(name = "curso")
public class Curso implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable=false)
private int id;
@Basic(optional = false)
@Column(name = "NOME", nullable=false)
private String nome;
@Basic(optional = false)
@Column(name = "NOMEDEPARTAMENTO", nullable=false)
private String nomeDepartamento;
@Basic(optional = false)
@Column(name = "CARGAHORARIA", nullable=true)
private int cargaHoraria;
public Curso() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getNomeDepartamento() {
return nomeDepartamento;
}
public void setNomeDepartamento(String nomeDepartamento) {
this.nomeDepartamento = nomeDepartamento;
}
public int getCargaHoraria() {
return cargaHoraria;
}
public void setCargaHoraria(int cargaHoraria) {
this.cargaHoraria = cargaHoraria;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Curso)) {
return false;
}
Curso other = (Curso) object;
if (!(this.getId() == other.getId())) {
return false;
}
return true;
}
}

Disciplina.java
package modelo;
import java.io.Serializable;
import javax.persistence.*;
import modelo.Curso;
@Entity
@Table(name = "disciplina")
public class Disciplina implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable=false)
private int id;
@Basic(optional = false)
@Column(name = "NOME", nullable=false)
private String nome;
@Basic(optional = false)
@Column(name = "QUANTIDADECREDITOS", nullable=true)
private int quantidadeCreditos;
@Basic(optional = false)
@Column(name = "NOMEPROFESSOR", nullable=true)
private String nomeProfessor;
@JoinColumn(name = "CURSO_ID", referencedColumnName = "ID", nullable=false)
@ManyToOne
private Curso curso;
public Disciplina() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getQuantidadeCreditos() {
return quantidadeCreditos;
}
public void setQuantidadeCreditos(int quantidadeCreditos) {
this.quantidadeCreditos = quantidadeCreditos;
}
public String getNomeProfessor() {
return nomeProfessor;
}
public void setNomeProfessor(String nomeProfessor) {
this.nomeProfessor = nomeProfessor;
}
public Curso getCurso() {
return curso;
}
public void setCurso(Curso curso) {
this.curso = curso;
}
@Override

public boolean equals(Object object) {


// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Disciplina)) {
return false;
}
Disciplina other = (Disciplina) object;
if (!(this.getId() == other.getId())) {
return false;
}
return true;
}
}

7)

Agora, vamos criar as classes no padro Fachada para acesso das classes Pessoa, Aluno,
Disciplina e Curso ao banco de Dados. Iremos criar 5 novas classes dentro do pacote fachada,
sendo: AbstractFacade, PessoaFacade, AlunoFacade, CursoFacade e DisciplinaFacade. Segue
abaixo o cdigo de cada uma dessas classes:
AbstractFacade.java

package fachada;
import
import
import
import

java.util.List;
javax.persistence.EntityManager;
javax.persistence.EntityManagerFactory;
javax.persistence.Persistence;

public abstract class AbstractFacade<T> {


private Class<T> entityClass;
protected static EntityManagerFactory emf = Persistence.createEntityManagerFactory("Projeto_Crud");
public AbstractFacade(Class<T> entityClass) {
this.entityClass = entityClass;
}
protected abstract EntityManager getEntityManager();
public void create(T entity) {
try {
getEntityManager().getTransaction().begin();
getEntityManager().persist(entity);
getEntityManager().getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
}
}
public void edit(T entity) {
try {
getEntityManager().getTransaction().begin();
getEntityManager().merge(entity);
getEntityManager().getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
}
}
public void remove(T entity) {
try {
getEntityManager().getTransaction().begin();
getEntityManager().remove(getEntityManager().merge(entity));

getEntityManager().getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
}
}
public T find(Object id) {
return getEntityManager().find(entityClass, id);
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public List<T> findAll() {
javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
cq.select(cq.from(entityClass));
return getEntityManager().createQuery(cq).getResultList();
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public List<T> findRange(int[] range) {
javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
cq.select(cq.from(entityClass));
javax.persistence.Query q = getEntityManager().createQuery(cq);
q.setMaxResults(range[1] - range[0]);
q.setFirstResult(range[0]);
return q.getResultList();
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public int count() {
javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
javax.persistence.criteria.Root<T> rt = cq.from(entityClass);
cq.select(getEntityManager().getCriteriaBuilder().count(rt));
javax.persistence.Query q = getEntityManager().createQuery(cq);
return ((Long) q.getSingleResult()).intValue();
}
}

PessoaFacade.java
package fachada;
import javax.persistence.EntityManager;
import modelo.Pessoa;
public class PessoaFacade extends AbstractFacade<Pessoa> {
private EntityManager em = AbstractFacade.emf.createEntityManager();
protected EntityManager getEntityManager() {
return em;
}
public PessoaFacade() {
super(Pessoa.class);
}
}

AlunoFacade.java
package fachada;
import javax.persistence.EntityManager;
import modelo.Aluno;

public class AlunoFacade extends AbstractFacade<Aluno> {


private EntityManager em = AbstractFacade.emf.createEntityManager();
protected EntityManager getEntityManager() {
return em;
}
public AlunoFacade() {
super(Aluno.class);
}
}

CursoFacade.java
package fachada;
import javax.persistence.EntityManager;
import modelo.Curso;
public class CursoFacade extends AbstractFacade<Curso> {
private EntityManager em = AbstractFacade.emf.createEntityManager();
protected EntityManager getEntityManager() {
return em;
}
public CursoFacade() {
super(Curso.class);
}
}

DisciplinaFacade.java
package fachada;
import javax.persistence.EntityManager;
import modelo.Disciplina;
public class DisciplinaFacade extends AbstractFacade<Disciplina> {
private EntityManager em = AbstractFacade.emf.createEntityManager();
protected EntityManager getEntityManager() {
return em;
}
public DisciplinaFacade() {
super(Disciplina.class);
}
}

8)

Agora, vamos criar os Beans Gerenciados que vo receber as requisies das pginas Web da
aplicao. Vamos criar 4 beans gerenciados dentro do pacote beansgerenciados:
PessoaManagedBean, AlunoManagedBean, CursoManagedBean e DisciplinaManagedBean. Os
cdigos desses beans gerenciados seguem abaixo:
PessoaManagedBean.java
package beansgerenciados;
import
import
import
import
import

java.util.ArrayList;
java.util.List;
javax.faces.model.SelectItem;
javax.faces.event.ActionEvent;
javax.faces.bean.ManagedBean;

import javax.faces.bean.RequestScoped;
import fachada.PessoaFacade;
import modelo.Pessoa;
@ManagedBean(name="PessoaManagedBean")
@RequestScoped
public class PessoaManagedBean {
private Pessoa pessoa = new Pessoa();
private PessoaFacade pessoaFacade = new PessoaFacade();
public PessoaManagedBean() {
}
public Pessoa getPessoa() {
return pessoa;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
public String newPessoa() {
this.pessoaFacade.create(this.pessoa);
return "newSuccess";
}
public String editPessoa() {
this.pessoaFacade.edit(this.pessoa);
return "editSuccess";
}
public void removePessoa(ActionEvent e) {
String id = (String) e.getComponent().getAttributes().get("codPessoa");
this.pessoaFacade.remove(this.pessoaFacade.find(id));
}
public void findPessoa(ActionEvent e) {
String id = (String) e.getComponent().getAttributes().get("codPessoa");
this.pessoa = this.pessoaFacade.find(id);
}
public List<Pessoa> getListaPessoas() {
return this.pessoaFacade.findAll();
}
public List<SelectItem> getPessoas() {
List<SelectItem> list = new ArrayList<SelectItem>();
List<Pessoa> it = getListaPessoas();
for (int i = 0; i < it.size(); i++) {
Pessoa pessoa = it.get(i);
list.add(new SelectItem(pessoa, pessoa.getCpf()+""));
}
return list;
}
}

AlunoManagedBean.java
package beansgerenciados;
import
import
import
import

java.util.ArrayList;
java.util.List;
javax.faces.model.SelectItem;
javax.faces.event.ActionEvent;

import
import
import
import

javax.faces.bean.ManagedBean;
javax.faces.bean.RequestScoped;
fachada.AlunoFacade;
modelo.Aluno;

@ManagedBean(name="AlunoManagedBean")
@RequestScoped
public class AlunoManagedBean {
private Aluno aluno = new Aluno();
private AlunoFacade alunoFacade = new AlunoFacade();
public AlunoManagedBean() {
}
public Aluno getAluno() {
return aluno;
}
public void setAluno(Aluno aluno) {
this.aluno = aluno;
}
public String newAluno() {
this.alunoFacade.create(this.aluno);
return "newSuccess";
}
public String editAluno() {
this.alunoFacade.edit(this.aluno);
return "editSuccess";
}
public void removeAluno(ActionEvent e) {
String id = (String) e.getComponent().getAttributes().get("codAluno");
this.alunoFacade.remove(this.alunoFacade.find(id));
}
public void findAluno(ActionEvent e) {
String id = (String) e.getComponent().getAttributes().get("codAluno");
this.aluno = this.alunoFacade.find(id);
}
public List<Aluno> getListaAlunos() {
return this.alunoFacade.findAll();
}
public List<SelectItem> getAlunos() {
List<SelectItem> list = new ArrayList<SelectItem>();
List<Aluno> it = getListaAlunos();
for (int i = 0; i < it.size(); i++) {
Aluno aluno = it.get(i);
list.add(new SelectItem(aluno, aluno.getCpf()+""));
}
return list;
}
}

CursoManagedBean.java
package beansgerenciados;
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;

import
import
import
import
import

javax.faces.event.ActionEvent;
javax.faces.bean.ManagedBean;
javax.faces.bean.RequestScoped;
fachada.CursoFacade;
modelo.Curso;

@ManagedBean(name="CursoManagedBean")
@RequestScoped
public class CursoManagedBean {
private Curso curso = new Curso();
private CursoFacade cursoFacade = new CursoFacade();
public CursoManagedBean() {
}
public Curso getCurso() {
return curso;
}
public void setCurso(Curso curso) {
this.curso = curso;
}
public String newCurso() {
this.cursoFacade.create(this.curso);
return "newSuccess";
}
public String editCurso() {
this.cursoFacade.edit(this.curso);
return "editSuccess";
}
public void removeCurso(ActionEvent e) {
Integer id = (Integer) e.getComponent().getAttributes().get("codCurso");
this.cursoFacade.remove(this.cursoFacade.find(id));
}
public void findCurso(ActionEvent e) {
Integer id = (Integer) e.getComponent().getAttributes().get("codCurso");
this.curso = this.cursoFacade.find(id);
}
public List<Curso> getListaCursos() {
return this.cursoFacade.findAll();
}
public List<SelectItem> getCursos() {
List<SelectItem> list = new ArrayList<SelectItem>();
List<Curso> it = getListaCursos();
for (int i = 0; i < it.size(); i++) {
Curso curso = it.get(i);
list.add(new SelectItem(curso, curso.getId()+""));
}
return list;
}
}

DisciplinaManagedBean.java
package beansgerenciados;
import java.util.ArrayList;
import java.util.List;

import
import
import
import
import
import

javax.faces.model.SelectItem;
javax.faces.event.ActionEvent;
javax.faces.bean.ManagedBean;
javax.faces.bean.RequestScoped;
fachada.DisciplinaFacade;
modelo.Disciplina;

@ManagedBean(name="DisciplinaManagedBean")
@RequestScoped
public class DisciplinaManagedBean {
private Disciplina disciplina = new Disciplina();
private DisciplinaFacade disciplinaFacade = new DisciplinaFacade();
public DisciplinaManagedBean() {
}
public Disciplina getDisciplina() {
return disciplina;
}
public void setDisciplina(Disciplina disciplina) {
this.disciplina = disciplina;
}
public String newDisciplina() {
this.disciplinaFacade.create(this.disciplina);
return "newSuccess";
}
public String editDisciplina() {
this.disciplinaFacade.edit(this.disciplina);
return "editSuccess";
}
public void removeDisciplina(ActionEvent e) {
Integer id = (Integer) e.getComponent().getAttributes().get("codDisciplina");
this.disciplinaFacade.remove(this.disciplinaFacade.find(id));
}
public void findDisciplina(ActionEvent e) {
Integer id = (Integer) e.getComponent().getAttributes().get("codDisciplina");
this.disciplina = this.disciplinaFacade.find(id);
}
public List<Disciplina> getListaDisciplinas() {
return this.disciplinaFacade.findAll();
}
public List<SelectItem> getDisciplinas() {
List<SelectItem> list = new ArrayList<SelectItem>();
List<Disciplina> it = getListaDisciplinas();
for (int i = 0; i < it.size(); i++) {
Disciplina disciplina = it.get(i);
list.add(new SelectItem(disciplina, disciplina.getId()+""));
}
return list;
}
}

9) Agora, vamos criar uma classe Converter para a classe Curso. Isso necessrio, pois na
interface Web haver um combobox para selecionar um curso no cadastro de Aluno e no

cadastro de Disciplina. Essa classe converter facilita a converso do texto escrito no


combobox para o objeto referete aquele texto. Desta forma, vamos criar a classe
CursoConverter dentro do pacote converters.
CursoConverter.java
package converters;
import
import
import
import
import
import

javax.faces.component.UIComponent;
javax.faces.context.FacesContext;
javax.faces.convert.Converter;
javax.faces.convert.FacesConverter;
fachada.CursoFacade;
modelo.Curso;

@FacesConverter("CursoConverter")
public class CursoConverter implements Converter {
public Object getAsObject(FacesContext context, UIComponent component, String value) {
return new CursoFacade().find(new Integer(value));
}
public String getAsString(FacesContext context, UIComponent component, Object value) {
Curso curso = (Curso) value;
return curso.getId()+"";
}
}

10) Agora vamos criar as pginas Web utilizando o framework JSF. Para cada uma das classes do
pacote modelo (Pessoa, Aluno, Curso, Disciplina) devero ser criadas 3 pginas Web
(cadastrar, editar e listar) e uma pgina index (pgina inicial).

11) Dentro da pasta WebContent crie 4 novas pastas: Pessoa, Aluno, Curso e Disciplina. Para criar
uma nova pasta dentro da pasta WebContent, clique com o boto direito do mouse em cima da
pasta WebContent, v em New > Folder. Digite o nome da nova pasta e clique em OK.

12) Criada as 4 pastas, vamos criar as pginas Web referente a Pessoa, dentro da pasta Pessoa.
Para criar uma nova pgina Web v em New > Other.. E procure por JSP File.

newPessoa.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"/>
<title>New Pessoa</title>
</head>
<body>
<div class="line-separator"></div>
<div style="text-align:center">
<h1 class="title">New Pessoa</h1>
</div>
<div class="line-separator"></div>
<br>
<h:form>
<h:panelGrid columns="2" styleClass="table">
<h:outputText value="cpf"/>
<h:inputText required="true" label="cpf"
value="#{PessoaManagedBean.pessoa.cpf}"/>
<h:outputText value="nome"/>
<h:inputText required="true" label="nome"
value="#{PessoaManagedBean.pessoa.nome}"/>
<h:outputText value="dataNascimento"/>
<h:inputText required="true"
label="dataNascimento" value="#{PessoaManagedBean.pessoa.dataNascimento}">
<f:convertDateTime pattern="dd/MM/yyyy"/>
</h:inputText>
<h:outputText value="telefone"/>

<h:inputText label="telefone"
value="#{PessoaManagedBean.pessoa.telefone}"/>
</h:panelGrid>
<br>
<h:messages errorClass="error"></h:messages>
<div style="text-align:center">
<h:commandButton value="Save"
action="#{PessoaManagedBean.newPessoa}" styleClass="save"/>
<h:commandButton value="Cancel" immediate="true"
action="listPessoa" styleClass="cancel"/>
</div>
</h:form>
</body>
</html>
</f:view>

editPessoa.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"/>
<title>Edit Pessoa</title>
</head>
<body>
<div class="line-separator"></div>
<div style="text-align:center">
<h1 class="title">Edit Pessoa</h1>
</div>
<div class="line-separator"></div>
<br>
<h:form>
<table class="table">
<tr>
<td>cpf</td>
<td>
<h:inputHidden
value="#{PessoaManagedBean.pessoa.cpf}"/>
<h:inputText disabled="true"
value="#{PessoaManagedBean.pessoa.cpf}"/>
</td>
</tr>
<tr>
<td>nome</td>
<td>
<h:inputText required="true"
label="nome" value="#{PessoaManagedBean.pessoa.nome}"/>
</td>
</tr>
<tr>
<td>dataNascimento</td>
<td>
<h:inputText required="true"
label="dataNascimento" value="#{PessoaManagedBean.pessoa.dataNascimento}">
<f:convertDateTime
pattern="dd/MM/yyyy"/>
</h:inputText>

</td>
</tr>
<tr>
<td>telefone</td>
<td>
<h:inputText label="telefone"
value="#{PessoaManagedBean.pessoa.telefone}"/>
</td>
</tr>
</table>
<br>
<h:messages errorClass="error"></h:messages>
<div style="text-align:center">
<h:commandButton value="Save"
action="#{PessoaManagedBean.editPessoa}" styleClass="save"/>
<h:commandButton value="Cancel" immediate="true"
action="listPessoa" styleClass="cancel"/>
</div>
</h:form>
</body>
</html>
</f:view>

listPessoa.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"/>
<title>List of Pessoa</title>
</head>
<body>
<div class="line-separator"></div>
<div style="text-align:center">
<h1 class="title">List of Pessoa</h1>
</div>
<div class="line-separator"></div>
<br>
<h:form>
<h:dataTable value="#{PessoaManagedBean.listaPessoas}"
var="item" styleClass="list_table" headerClass="header" rowClasses="row1,row2">
<h:column>
<f:facet name="header" >
<h:outputText value="cpf"/>
</f:facet>
<h:outputText value="#{item.cpf}"/>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="nome"/>
</f:facet>
<h:outputText value="#{item.nome}"/>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="dataNascimento"/>
</f:facet>

<h:outputText
value="#{item.dataNascimento}">

<f:convertDateTime

pattern="dd/MM/yyyy"/>

</h:outputText>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="telefone"/>
</f:facet>
<h:outputText value="#{item.telefone}"/>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="Editar"/>
</f:facet>
<h:commandLink value="editar" type="submit"
action="editPessoa" actionListener="#{PessoaManagedBean.findPessoa}" >
<f:attribute name="codPessoa"
value="#{item.cpf}"/>
</h:commandLink>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="Remover"/>
</f:facet>
<h:commandLink value="remover" type="submit"
actionListener="#{PessoaManagedBean.removePessoa}" >
<f:attribute name="codPessoa"
value="#{item.cpf}"/>
</h:commandLink>
</h:column>
</h:dataTable>
<br>
<div style="text-align:center">
<h:commandButton value="Back to Index"
immediate="true" action="index" styleClass="button"/>
<h:commandButton value="New Pessoa"
immediate="true" action="newPessoa" styleClass="button"/>
</div>
</h:form>
</body>
</html>
</f:view>

13)Vamos criar as pginas Web referente ao Aluno dentro da pasta Aluno.


newAluno.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>


<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"/>
<title>New Aluno</title>

</head>
<body>
<div class="line-separator"></div>
<div style="text-align:center">
<h1 class="title">New Aluno</h1>
</div>
<div class="line-separator"></div>
<br>
<h:form>
<h:panelGrid columns="2" styleClass="table">
<h:outputText value="cpf"/>
<h:inputText required="true" label="cpf"
value="#{AlunoManagedBean.aluno.cpf}"/>
<h:outputText value="nome"/>
<h:inputText required="true" label="nome"
value="#{AlunoManagedBean.aluno.nome}"/>
<h:outputText value="dataNascimento"/>
<h:inputText required="true"
label="dataNascimento" value="#{AlunoManagedBean.aluno.dataNascimento}">
<f:convertDateTime pattern="dd/MM/yyyy"/>
</h:inputText>
<h:outputText value="telefone"/>
<h:inputText label="telefone"
value="#{AlunoManagedBean.aluno.telefone}"/>
<h:outputText value="ra"/>
<h:inputText required="true" label="ra"
value="#{AlunoManagedBean.aluno.ra}"/>
<h:outputText value="email"/>
<h:inputText required="true" label="email"
value="#{AlunoManagedBean.aluno.email}"/>
<h:outputText value="escolaridade"/>
<h:inputText label="escolaridade"
value="#{AlunoManagedBean.aluno.escolaridade}"/>
<h:outputText value="curso"/>
<h:selectOneMenu required="true" label="curso"
value="#{AlunoManagedBean.aluno.curso}">
<f:selectItems value="#{CursoManagedBean.cursos}"
/>
<f:converter converterId="CursoConverter"/>
</h:selectOneMenu>
</h:panelGrid>
<br>
<h:messages errorClass="error"></h:messages>
<div style="text-align:center">
<h:commandButton value="Save"
action="#{AlunoManagedBean.newAluno}" styleClass="save"/>
<h:commandButton value="Cancel" immediate="true"
action="listAluno" styleClass="cancel"/>
</div>
</h:form>
</body>
</html>
</f:view>

editAluno.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:view>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"/>
<title>Edit Aluno</title>
</head>
<body>
<div class="line-separator"></div>
<div style="text-align:center">
<h1 class="title">Edit Aluno</h1>
</div>
<div class="line-separator"></div>
<br>
<h:form>
<table class="table">
<tr>
<td>cpf</td>
<td>
<h:inputHidden
value="#{AlunoManagedBean.aluno.cpf}"/>
<h:inputText disabled="true"
value="#{AlunoManagedBean.aluno.cpf}"/>
</td>
</tr>
<tr>
<td>nome</td>
<td>
<h:inputText required="true"
label="nome" value="#{AlunoManagedBean.aluno.nome}"/>
</td>
</tr>
<tr>
<td>dataNascimento</td>
<td>
<h:inputText required="true"
label="dataNascimento" value="#{AlunoManagedBean.aluno.dataNascimento}">
<f:convertDateTime
pattern="dd/MM/yyyy"/>
</h:inputText>
</td>
</tr>
<tr>
<td>telefone</td>
<td>
<h:inputText label="telefone"
value="#{AlunoManagedBean.aluno.telefone}"/>
</td>
</tr>
<tr>
<td>ra</td>
<td>
<h:inputText required="true"
label="ra" value="#{AlunoManagedBean.aluno.ra}"/>
</td>
</tr>
<tr>
<td>email</td>
<td>
<h:inputText required="true"
label="email" value="#{AlunoManagedBean.aluno.email}"/>
</td>
</tr>

<tr>
<td>escolaridade</td>
<td>
<h:inputText label="escolaridade"
value="#{AlunoManagedBean.aluno.escolaridade}"/>
</td>
</tr>
<tr>
<td>curso</td>
<td>
<h:selectOneMenu required="true"
label="curso" value="#{AlunoManagedBean.aluno.curso}">
<f:selectItems
value="#{CursoManagedBean.cursos}" />
<f:converter
converterId="CursoConverter"/>
</h:selectOneMenu>
</td>
</tr>
</table>
<br>
<h:messages errorClass="error"></h:messages>
<div style="text-align:center">
<h:commandButton value="Save"
action="#{AlunoManagedBean.editAluno}" styleClass="save"/>
<h:commandButton value="Cancel" immediate="true"
action="listAluno" styleClass="cancel"/>
</div>
</h:form>
</body>
</html>
</f:view>

listAluno.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"/>
<title>List of Aluno</title>
</head>
<body>
<div class="line-separator"></div>
<div style="text-align:center">
<h1 class="title">List of Aluno</h1>
</div>
<div class="line-separator"></div>
<br>
<h:form>
<h:dataTable value="#{AlunoManagedBean.listaAlunos}"
var="item" styleClass="list_table" headerClass="header" rowClasses="row1,row2">
<h:column>
<f:facet name="header" >
<h:outputText value="cpf"/>
</f:facet>
<h:outputText value="#{item.cpf}"/>
</h:column>

<h:column>
<f:facet name="header" >
<h:outputText value="nome"/>
</f:facet>
<h:outputText value="#{item.nome}"/>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="dataNascimento"/>
</f:facet>
<h:outputText
value="#{item.dataNascimento}">
<f:convertDateTime
pattern="dd/MM/yyyy"/>
</h:outputText>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="telefone"/>
</f:facet>
<h:outputText value="#{item.telefone}"/>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="ra"/>
</f:facet>
<h:outputText value="#{item.ra}"/>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="email"/>
</f:facet>
<h:outputText value="#{item.email}"/>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="escolaridade"/>
</f:facet>
<h:outputText value="#{item.escolaridade}"/>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="curso"/>
</f:facet>
<h:outputText value="#{item.curso}">
<f:converter
converterId="CursoConverter"/>
</h:outputText>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="Editar"/>
</f:facet>
<h:commandLink value="editar" type="submit"
action="editAluno" actionListener="#{AlunoManagedBean.findAluno}" >
<f:attribute name="codAluno"
value="#{item.cpf}"/>
</h:commandLink>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="Remover"/>

</f:facet>
<h:commandLink value="remover" type="submit"
actionListener="#{AlunoManagedBean.removeAluno}" >
<f:attribute name="codAluno"
value="#{item.cpf}"/>
</h:commandLink>
</h:column>
</h:dataTable>
<br>
<div style="text-align:center">
<h:commandButton value="Back to Index"
immediate="true" action="index" styleClass="button"/>
<h:commandButton value="New Aluno"
immediate="true" action="newAluno" styleClass="button"/>
</div>
</h:form>
</body>
</html>
</f:view>

14)Vamos criar as pginas Web referente ao Curso dentro da pasta Curso.


newCurso.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"/>
<title>New Curso</title>
</head>
<body>
<div class="line-separator"></div>
<div style="text-align:center">
<h1 class="title">New Curso</h1>
</div>
<div class="line-separator"></div>
<br>
<h:form>
<h:panelGrid columns="2" styleClass="table">
<h:outputText value="nome"/>
<h:inputText required="true" label="nome"
value="#{CursoManagedBean.curso.nome}"/>
<h:outputText value="nomeDepartamento"/>
<h:inputText required="true"
label="nomeDepartamento" value="#{CursoManagedBean.curso.nomeDepartamento}"/>
<h:outputText value="cargaHoraria"/>
<h:inputText label="cargaHoraria"
value="#{CursoManagedBean.curso.cargaHoraria}"/>
</h:panelGrid>
<br>
<h:messages errorClass="error"></h:messages>
<div style="text-align:center">
<h:commandButton value="Save"
action="#{CursoManagedBean.newCurso}" styleClass="save"/>
<h:commandButton value="Cancel" immediate="true"

action="listCurso" styleClass="cancel"/>
</div>
</h:form>
</body>
</html>
</f:view>

editCurso.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"/>
<title>Edit Curso</title>
</head>
<body>
<div class="line-separator"></div>
<div style="text-align:center">
<h1 class="title">Edit Curso</h1>
</div>
<div class="line-separator"></div>
<br>
<h:form>
<table class="table">
<h:inputHidden
value="#{CursoManagedBean.curso.id}"/>
<tr>
<td>nome</td>
<td>
<h:inputText required="true"
label="nome" value="#{CursoManagedBean.curso.nome}"/>
</td>
</tr>
<tr>
<td>nomeDepartamento</td>
<td>
<h:inputText required="true"
label="nomeDepartamento" value="#{CursoManagedBean.curso.nomeDepartamento}"/>
</td>
</tr>
<tr>
<td>cargaHoraria</td>
<td>
<h:inputText label="cargaHoraria"
value="#{CursoManagedBean.curso.cargaHoraria}"/>
</td>
</tr>
</table>
<br>
<h:messages errorClass="error"></h:messages>
<div style="text-align:center">
<h:commandButton value="Save"
action="#{CursoManagedBean.editCurso}" styleClass="save"/>
<h:commandButton value="Cancel" immediate="true"
action="listCurso" styleClass="cancel"/>
</div>

</h:form>
</body>
</html>
</f:view>

listCurso.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"/>
<title>List of Curso</title>
</head>
<body>
<div class="line-separator"></div>
<div style="text-align:center">
<h1 class="title">List of Curso</h1>
</div>
<div class="line-separator"></div>
<br>
<h:form>
<h:dataTable value="#{CursoManagedBean.listaCursos}"
var="item" styleClass="list_table" headerClass="header" rowClasses="row1,row2">
<h:column>
<f:facet name="header" >
<h:outputText value="id"/>
</f:facet>
<h:outputText value="#{item.id}"/>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="nome"/>
</f:facet>
<h:outputText value="#{item.nome}"/>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText
value="nomeDepartamento"/>
</f:facet>
<h:outputText
value="#{item.nomeDepartamento}"/>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="cargaHoraria"/>
</f:facet>
<h:outputText value="#{item.cargaHoraria}"/>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="Editar"/>
</f:facet>
<h:commandLink value="editar" type="submit"
action="editCurso" actionListener="#{CursoManagedBean.findCurso}" >
<f:attribute name="codCurso"
value="#{item.id}"/>

</h:commandLink>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="Remover"/>
</f:facet>
<h:commandLink value="remover" type="submit"
actionListener="#{CursoManagedBean.removeCurso}" >
<f:attribute name="codCurso"
value="#{item.id}"/>
</h:commandLink>
</h:column>
</h:dataTable>
<br>
<div style="text-align:center">
<h:commandButton value="Back to Index"
immediate="true" action="index" styleClass="button"/>
<h:commandButton value="New Curso"
immediate="true" action="newCurso" styleClass="button"/>
</div>
</h:form>
</body>
</html>
</f:view>

15) Vamos criar as pginas Web referente a Disciplina dentro da pasta Disciplina.
newDisciplina.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"/>
<title>New Disciplina</title>
</head>
<body>
<div class="line-separator"></div>
<div style="text-align:center">
<h1 class="title">New Disciplina</h1>
</div>
<div class="line-separator"></div>
<br>
<h:form>
<h:panelGrid columns="2" styleClass="table">
<h:outputText value="nome"/>
<h:inputText required="true" label="nome"
value="#{DisciplinaManagedBean.disciplina.nome}"/>
<h:outputText value="quantidadeCreditos"/>
<h:inputText label="quantidadeCreditos"
value="#{DisciplinaManagedBean.disciplina.quantidadeCreditos}"/>
<h:outputText value="nomeProfessor"/>
<h:inputText label="nomeProfessor"
value="#{DisciplinaManagedBean.disciplina.nomeProfessor}"/>

<h:outputText value="curso"/>
<h:selectOneMenu required="true" label="curso"
value="#{DisciplinaManagedBean.disciplina.curso}">
<f:selectItems value="#{CursoManagedBean.cursos}"
/>
<f:converter converterId="CursoConverter"/>
</h:selectOneMenu>
</h:panelGrid>
<br>
<h:messages errorClass="error"></h:messages>
<div style="text-align:center">
<h:commandButton value="Save"
action="#{DisciplinaManagedBean.newDisciplina}" styleClass="save"/>
<h:commandButton value="Cancel" immediate="true"
action="listDisciplina" styleClass="cancel"/>
</div>
</h:form>
</body>
</html>
</f:view>

editDisciplina.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>


<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"/>
<title>Edit Disciplina</title>
</head>
<body>
<div class="line-separator"></div>
<div style="text-align:center">
<h1 class="title">Edit Disciplina</h1>
</div>
<div class="line-separator"></div>
<br>
<h:form>
<table class="table">
<h:inputHidden
value="#{DisciplinaManagedBean.disciplina.id}"/>
<tr>
<td>nome</td>
<td>
<h:inputText required="true"
label="nome" value="#{DisciplinaManagedBean.disciplina.nome}"/>
</td>
</tr>
<tr>
<td>quantidadeCreditos</td>
<td>
<h:inputText
label="quantidadeCreditos"
value="#{DisciplinaManagedBean.disciplina.quantidadeCreditos}"/>
</td>
</tr>
<tr>
<td>nomeProfessor</td>

<td>
<h:inputText label="nomeProfessor"
value="#{DisciplinaManagedBean.disciplina.nomeProfessor}"/>
</td>
</tr>
<tr>
<td>curso</td>
<td>
<h:selectOneMenu required="true"
label="curso" value="#{DisciplinaManagedBean.disciplina.curso}">
<f:selectItems
value="#{CursoManagedBean.cursos}" />
<f:converter
converterId="CursoConverter"/>
</h:selectOneMenu>
</td>
</tr>
</table>
<br>
<h:messages errorClass="error"></h:messages>
<div style="text-align:center">
<h:commandButton value="Save"
action="#{DisciplinaManagedBean.editDisciplina}" styleClass="save"/>
<h:commandButton value="Cancel" immediate="true"
action="listDisciplina" styleClass="cancel"/>
</div>
</h:form>
</body>
</html>
</f:view>

listDisciplina.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"/>
<title>List of Disciplina</title>
</head>
<body>
<div class="line-separator"></div>
<div style="text-align:center">
<h1 class="title">List of Disciplina</h1>
</div>
<div class="line-separator"></div>
<br>
<h:form>
<h:dataTable
value="#{DisciplinaManagedBean.listaDisciplinas}" var="item"
styleClass="list_table" headerClass="header" rowClasses="row1,row2">
<h:column>
<f:facet name="header" >
<h:outputText value="id"/>
</f:facet>
<h:outputText value="#{item.id}"/>
</h:column>
<h:column>

value="quantidadeCreditos"/>

<f:facet name="header" >


<h:outputText value="nome"/>
</f:facet>
<h:outputText value="#{item.nome}"/>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText

</f:facet>
<h:outputText
value="#{item.quantidadeCreditos}"/>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="nomeProfessor"/>
</f:facet>
<h:outputText
value="#{item.nomeProfessor}"/>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="curso"/>
</f:facet>
<h:outputText value="#{item.curso}">
<f:converter
converterId="CursoConverter"/>
</h:outputText>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="Editar"/>
</f:facet>
<h:commandLink value="editar" type="submit"
action="editDisciplina"
actionListener="#{DisciplinaManagedBean.findDisciplina}" >
<f:attribute name="codDisciplina"
value="#{item.id}"/>
</h:commandLink>
</h:column>
<h:column>
<f:facet name="header" >
<h:outputText value="Remover"/>
</f:facet>
<h:commandLink value="remover" type="submit"
actionListener="#{DisciplinaManagedBean.removeDisciplina}" >
<f:attribute name="codDisciplina"
value="#{item.id}"/>
</h:commandLink>
</h:column>
</h:dataTable>
<br>
<div style="text-align:center">
<h:commandButton value="Back to Index"
immediate="true" action="index" styleClass="button"/>
<h:commandButton value="New Disciplina"
immediate="true" action="newDisciplina" styleClass="button"/>
</div>
</h:form>
</body>
</html>
</f:view>

16) Vamos criar a pgina Web de index dentro da pasta WebContent.


index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"/>
<title>index</title>
</head>
<body>
<div class="line-separator"></div>
<div style="text-align:center">
<h1 class="title">CRUD</h1>
</div>
<div class="line-separator"></div>
<br>
<h:form>
<h:panelGrid styleClass="list_table"
rowClasses="row1,row2">
<h:commandLink value="Disciplina"
action="listDisciplina"/>
<h:commandLink value="Pessoa"
action="listPessoa"/>
<h:commandLink value="Aluno" action="listAluno"/>
<h:commandLink value="Curso" action="listCurso"/>
</h:panelGrid>
</h:form>
</body>
</html>
</f:view>

17) Vamos adicionar as regras de navegao no arquivo faces-config.xml que est na pasta
WebContent/WEB-INF. O cdigo final do arquivo segue abaixo:
faces-config.xml
<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd">
<converter>
<converter-id>CursoConverter</converter-id>
<converter-class>converters.CursoConverter</converter-class>
</converter>
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>

<from-outcome>newDisciplina</from-outcome>
<to-view-id>/Disciplina/newDisciplina.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>editDisciplina</from-outcome>
<to-view-id>/Disciplina/editDisciplina.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>listDisciplina</from-outcome>
<to-view-id>/Disciplina/listDisciplina.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>index</from-outcome>
<to-view-id>/index.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/Disciplina/newDisciplina.jsp</from-view-id>
<navigation-case>
<from-outcome>newSuccess</from-outcome>
<to-view-id>/Disciplina/listDisciplina.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/Disciplina/editDisciplina.jsp</from-view-id>
<navigation-case>
<from-outcome>editSuccess</from-outcome>
<to-view-id>/Disciplina/listDisciplina.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>newPessoa</from-outcome>
<to-view-id>/Pessoa/newPessoa.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>editPessoa</from-outcome>
<to-view-id>/Pessoa/editPessoa.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>listPessoa</from-outcome>
<to-view-id>/Pessoa/listPessoa.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>index</from-outcome>
<to-view-id>/index.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>

<navigation-rule>
<from-view-id>/Pessoa/newPessoa.jsp</from-view-id>
<navigation-case>
<from-outcome>newSuccess</from-outcome>
<to-view-id>/Pessoa/listPessoa.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/Pessoa/editPessoa.jsp</from-view-id>
<navigation-case>
<from-outcome>editSuccess</from-outcome>
<to-view-id>/Pessoa/listPessoa.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>newAluno</from-outcome>
<to-view-id>/Aluno/newAluno.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>editAluno</from-outcome>
<to-view-id>/Aluno/editAluno.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>listAluno</from-outcome>
<to-view-id>/Aluno/listAluno.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>index</from-outcome>
<to-view-id>/index.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/Aluno/newAluno.jsp</from-view-id>
<navigation-case>
<from-outcome>newSuccess</from-outcome>
<to-view-id>/Aluno/listAluno.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/Aluno/editAluno.jsp</from-view-id>
<navigation-case>
<from-outcome>editSuccess</from-outcome>
<to-view-id>/Aluno/listAluno.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>*</from-view-id>

<navigation-case>
<from-outcome>newCurso</from-outcome>
<to-view-id>/Curso/newCurso.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>editCurso</from-outcome>
<to-view-id>/Curso/editCurso.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>listCurso</from-outcome>
<to-view-id>/Curso/listCurso.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>index</from-outcome>
<to-view-id>/index.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/Curso/newCurso.jsp</from-view-id>
<navigation-case>
<from-outcome>newSuccess</from-outcome>
<to-view-id>/Curso/listCurso.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/Curso/editCurso.jsp</from-view-id>
<navigation-case>
<from-outcome>editSuccess</from-outcome>
<to-view-id>/Curso/listCurso.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
</faces-config>

Você também pode gostar