<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:import url="/WEB-INF/jsp/header.jsp"/>
<div id="tamanho_lista">
<a class="btn btn-secondary btn-lg" href="${linkTo[ClienteController].form()}">Novo cliente</a>
<table class="table table-hover">
<thead>
<tr>
<th>NOME</th>
<th>CPF</th>
<th>RG</th>
<th>EMAIL</th>
<th>RUA</th>
<th>BAIRRO</th>
<th>CEP</th>
<th>CIDADE</th>
<th>Editar</th>
<th>Excluir</th>
</tr>
</thead>
<tbody>
<c:forEach items="${clienteList}" var="cliente">
<tr>
<td>${cliente.nome}</td>
<td>${cliente.cpf}</td>
<td>${cliente.rg}</td>
<td>${cliente.email}</td>
<td>${cliente.rua}</td>
<td>${cliente.bairro}</td>
<td>${cliente.cep}</td>
<td>${cliente.email}</td>
<td>
<form action="<c:url value='/cliente/form_att'/>" method="post">
<input type="hidden" name="_method" value="PUT">
<input type="hidden" name="cliente.cpf" value="${cliente.cpf}">
<input type="submit" value="Editar">
</form>
</td>
<td>
<form action="<c:url value='/cliente/remove'/>" method="post">
<input type="hidden" name="_method" value="DELETE">
<input type="hidden" name="cliente.cpf" value="${cliente.cpf}">
<input type="submit" value="Excluir">
</form>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
<c:import url="/WEB-INF/jsp/footer.jsp"/>
package br.com.wvs.dao;
import java.util.List;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Path;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import br.com.wvs.model.Cliente;
@RequestScoped
public class ClienteDao {
private EntityManager manager;
@Inject
public ClienteDao(EntityManager manager ) {
this.manager = manager;
}
public ClienteDao() {};
public void adiciona (Cliente cliente) {
manager.getTransaction().begin();
manager.persist(cliente);
manager.getTransaction().commit();
}
public void atualiza(Cliente cliente) {
manager.getTransaction().begin();
manager.merge(cliente);
manager.getTransaction().commit();
}
public List<Cliente> lista(){
TypedQuery<Cliente> query = manager.createQuery("Select r from Cliente r", Cliente.class);
return query.getResultList();
}
public List<Cliente> busca(String nome) {
manager.getTransaction().begin();
CriteriaBuilder criteria = manager.getCriteriaBuilder();
CriteriaQuery<Cliente> query = criteria.createQuery(Cliente.class);
Root<Cliente> root = query.from(Cliente.class);
Path<String> nmPath = root.<String>get("nome");
Predicate nomeIgual = criteria.like(nmPath,"%" + nome + "%");
query.where(nomeIgual);
TypedQuery<Cliente> tQuery = manager.createQuery(query);
manager.getTransaction().commit();
return tQuery.getResultList();
}
public Cliente find(Cliente cliente) {
return manager.find(Cliente.class, cliente.getCpf());
}
public void remove(Cliente cliente) {
manager.getTransaction().begin();
cliente = find(cliente);
manager.remove(cliente);
manager.getTransaction().commit();
}
}
package br.com.wvs.controller;
import java.util.List;
import javax.inject.Inject;
import javax.validation.Valid;
import br.com.caelum.vraptor.Controller;
import br.com.caelum.vraptor.Delete;
import br.com.caelum.vraptor.Put;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.interceptor.IncludeParameters;
import br.com.caelum.vraptor.validator.Validator;
import br.com.wvs.dao.ClienteDao;
import br.com.wvs.model.Cliente;
@Controller
public class ClienteController {
private ClienteDao clienteDao;
private Result result;
private Validator validator;
@Inject
public ClienteController(ClienteDao clienteDao, Result result, Validator validator) {
this.clienteDao = clienteDao;
this.result = result;
this.validator = validator;
}
public ClienteController() {};
public void form() {};
public void form_att() {};
@IncludeParameters
public void adiciona (@Valid Cliente cliente) {
validator.onErrorRedirectTo(this).form();
clienteDao.adiciona(cliente);
result.redirectTo(this).lista();
}
@Put
public void atualiza(Cliente cliente) {
cliente = clienteDao.find(cliente);
clienteDao.atualiza(cliente);
result.redirectTo(this).lista();
}
public void lista() {
List<Cliente> clientes = clienteDao.lista();
result.include("clientes", clientes);
};
@Delete
public void remove (Cliente cliente) {
clienteDao.remove(cliente);
result.redirectTo(this).lista();
}
public List<Cliente> busca(String nome){
result.include("nome", nome);
return clienteDao.busca(nome);
}
}
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir = "/WEB-INF/tags" prefix="t" %>
<c:import url="/WEB-INF/jsp/header.jsp"></c:import>
<div id="tamanho_form">
<form action="<c:url value="/cliente/atualiza"/>" method="POST" id="cad_cliente">
<div class="form-row">
<div class="form-group col-md-6">
<label for="nome">NOME:</label>
<input type="text" name="cliente.nome" id="nome" class="form-control" value="${cliente.nome}"/>
<%--<t:validationMessage name="cliente.nome"></t:validationMessage>--%>
</div>
<div class="form-group col-md-6">
<label for="cpf">CPF:</label>
<input type="text" name="cliente.cpf" id="cpf" class="form-control" value="${cliente.cpf}" placeholder="000.000.000-00"/>
<%--<t:validationMessage name="cliente.cpf"></t:validationMessage>--%>
</div>
<div class="form-group col-md-6">
<label for="email">E-MAIL:</label>
<input type="text" name="cliente.email" id="email" class="form-control" value="${cliente.email}"/>
<%--<t:validationMessage name="cliente.email"></t:validationMessage>--%>
</div>
<div class="form-group col-md-6">
<label for="rg">RG:</label>
<input type="text" name="cliente.rg" id="rg" class="form-control" value="${cliente.rg}" placeholder="00.000.000-0"/>
<%--<t:validationMessage name="cliente.rg"></t:validationMessage>--%>
</div>
<div class="form-group col-md-6">
<label for="rua">RUA:</label>
<input type="text" name="cliente.rua" id="rua" class="form-control" value="${cliente.rua}"/>
<%--<t:validationMessage name="cliente.rua"></t:validationMessage>--%>
</div>
<div class="form-group col-md-6">
<label for="bairro">BAIRRO:</label>
<input type="text" name="cliente.bairro" id="bairro" class="form-control" value="${cliente.bairro}"/>
<%--<t:validationMessage name="cliente.bairro"></t:validationMessage>--%>
</div>
<div class="form-group col-md-6">
<label for="cep">CEP:</label>
<input type="text" name="cliente.cep" id="cep" class="form-control" value="${cliente.cep}" placeholder="00000-000"/>
<%--<t:validationMessage name="cliente.cep"></t:validationMessage>--%>
</div>
<div class="form-group col-md-6">
<label for="cidade">CIDADE:</label>
<input type="text" name="cliente.cidade" id="cidade" class="form-control" value="${cliente.cidade}"/>
<%--<t:validationMessage name="cliente.cidade"></t:validationMessage>--%>
</div>
<input type="submit" value="Atualizar" class="btn btn-dark"/>
</div>
</form>
</div>
<c:import url="/WEB-INF/jsp/footer.jsp"></c:import>
--
Você recebeu essa mensagem porque está inscrito no grupo "caelum-vraptor" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vrapto...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/caelum-vraptor.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/caelum-vraptor/c2e168ec-f151-447c-acda-5e5985ec5db1%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.