Olá Pessoal!
Gostaria de exibir os itens de um pedido feito no mesmo formulário onde é visualizado as informações de quem fez o pedido. Pois desejo fazer um update no pedido mostrando os itens deste pedido!
A pagina JSP que mostra as informações de quem fez o pedido está descrito abaixo:
<%--
Document : index
Created on : 17/01/2017, 20:57:39
Author : Jairo
--%>
<%@page import="br.com.jairo.modelo.ItensVenda"%>
<%@page import="br.com.jairo.modelo.Venda"%>
<%@page import="java.util.Iterator"%>
<%@page import="java.util.List"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@taglib tagdir="/WEB-INF/tags" prefix="tagsJairo" %>
<tagsJairo:verificaUsuario/>
<c:import url="cabecalho.jsp"/>
<h1>Atualização de Pedidos</h1>
<form id="formAlteraPedido" method="post" action="AlteraPedido"
<div class="campos">
<label for="vencodigo">Codigo do Pedido.:</label>
<input type="text" name="vencodigo" value="${param.vencodigo}" readonly size="10" <br><br>
</div>
<div class="campos">
<label for="vendata">Data do Pedido.:</label>
<input type="date" name="vendata" id="vendata" value="${param.vendata}" size="10" readonly <br><br>
</div>
<div class="campos">
<label for="vencli">Nome do Cliente.:</label>
<input type="text" name="vencli" value="${param.vencli}" readonly size="10" <br><br>
</div>
<div class="campos">
<label for="venvaltotal">Valor Total do Pedido.:</label>
<input type="text" name="venvaltotal" value="${param.venvaltotal}" readonly size="10"<br>
</div>
<div class="campos">
<label for="venobs">Observações do Pedido.:</label>
<input type="text" name="venobs" value="${param.venobs}" size="100" <br>
</div>
<div class="campos">
<label for="vensituacao">Pedido Concluido.:</label>
<input type="checkbox" name="vensituacao" value="${param.vensituacao}"<br>
</div>
<input type="submit" name="Atualizar" value="Atualizar"
</form
Abaixo o método que utilizo para atualizar o pedido. Lembrando que é para atualizar somente o pedido não os itens do pedido.
//metodo que altera o pedido feito pelo usuario
public void alteraPedido(Venda vendas) throws SQLException {
String sql = "update vendas set vendata=?, vencli=?, venvaltotal=?, venobs=?, vensituacao=? where vencodigo=?";
PreparedStatement ps = null;
try {
ps = conexao.prepareStatement(sql);
ps.setDate(1, new java.sql.Date(vendas.getVenData().getTime()));
ps.setString(2, vendas.getVenCli());
ps.setDouble(3, vendas.getVenValTotal());
ps.setString(4, vendas.getVenObs());
ps.setBoolean(5, vendas.getVenSituacao());
ps.setInt(6, vendas.getVenCodigo());
ps.execute();
} catch (SQLException er) {
Logger.getLogger(VendaDAO.class.getName()).log(Level.SEVERE, null, er);
} finally {
ps.close();
}
}
Abaixo segue o servlet:
public class AlteraPedido extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, ParseException, SQLException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String codigo = request.getParameter("vencodigo");
String venData = request.getParameter("vendata");
String cliente = request.getParameter("vencli");
String valorTotal = request.getParameter("venvaltotal");
String obs = request.getParameter("venobs");
String sit = request.getParameter("vensituacao");
Venda venda = new Venda();
venda.setVenCodigo(Integer.parseInt(codigo));
DateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy");
if (venData != null) {
Date dataFormatada = formatoData.parse(venData);
venda.setVenData(dataFormatada);
}
venda.setVenCli(cliente);
venda.setVenValTotal(Double.parseDouble(valorTotal));
venda.setVenObs(obs);
if (sit != null) {
venda.setVenSituacao(true);
}
//venda.isVenSituacao();
VendaDAO vendaDAO = new VendaDAO();
vendaDAO.alteraPedido(venda);
ItensVendaDAO itensVendaDAO = new ItensVendaDAO();
try {
//ESTE TRECHO DO CODIGO É PARA EXIBIR OS ITENS DO PEDIDO
List listaPedidosPendentes = itensVendaDAO.getListaItensVendaPendentes();
request.setAttribute("sessaoPendente", listaPedidosPendentes);
} catch (SQLException erro) {
Logger.getLogger(AlteraPedido.class.getName()).log(Level.SEVERE, null, erro);
}
RequestDispatcher rd = request.getRequestDispatcher("/PedidosCRUD");
rd.forward(request, response);
}
Abaixo segue o método para exibir os itens do pedido:
//metodo que retorna a lista de itens da venda pendentes
public List getListaItensVendaPendentes() throws SQLException {
String sqli = "select * from itensvenda";
PreparedStatement ps = null;
ResultSet rs = null;
List<ItensVenda> listaItensVendaPendentes = new ArrayList<ItensVenda>();
try {
ps = conexao.prepareStatement(sqli);
rs = ps.executeQuery();
while (rs.next()) {
ItensVenda itensVenda = new ItensVenda();
itensVenda.setItensCodigo(rs.getInt("itenscodigo"));
itensVenda.setItensCodVenda(rs.getInt("itenscodvenda"));
itensVenda.setItensCodProd(rs.getInt("itenscodprod"));
itensVenda.setItensQuant(rs.getInt("itensquant"));
itensVenda.setItensTotalVenda(rs.getDouble("itenstotalvenda"));
listaItensVendaPendentes.add(itensVenda);
}
//System.out.println(listaItensVendaPendentes);
return listaItensVendaPendentes;
} catch (SQLException er) {
Logger.getLogger(ItensVendaDAO.class.getName()).log(Level.SEVERE, null, er);
} finally {
//conexao.close();
//ps.close();
//rs.close();
}
return null;
}
Como informei acima não consigo exibir os itens do pedido neste mesmo formulário, mas se eu fizer um jsp separado e um servlet separado somente para exibir os itens do pedido, eu consigo mostrar os itens do pedido.
Abaixo o jsp que fiz somente para exibir os itens do pedido:
<%--
Document : index
Created on : 17/01/2017, 20:57:39
Author : Jairo
--%>
<%@page import="br.com.jairo.modelo.ItensVenda"%>
<%@page import="java.util.Iterator"%>
<%@page import="java.util.List"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@taglib tagdir="/WEB-INF/tags" prefix="tagsJairo" %>
<tagsJairo:verificaUsuario/>
<c:import url="cabecalho.jsp"/>
<h1>Atualização De Pedidos</h1>
<table border="1"
<tr
<tdSeq.</td><td>Cod. da Venda</td><td>Cod. do Produto</td><td>Qtd.</td><td>Valor Total</td>
</tr
<%
List listaItensPendentes = (List) request.getAttribute("sessaoItensPendentes");
for (Iterator iterator = listaItensPendentes.iterator(); iterator.hasNext();) {
ItensVenda itensVenda = (ItensVenda) iterator.next();%>
<tr>
<td><%=itensVenda.getItensCodigo()%></td>
<td><%=itensVenda.getItensCodVenda()%></td>
<td><%=itensVenda.getItensCodProd()%></td>
<td><%=itensVenda.getItensQuant()%></td>
<td><%=itensVenda.getItensTotalVenda()%></td>
</tr>
<%
}
%>
</table
<c:import url="rodape.jsp"/>
O servlet:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.jairo.controle;
import br.com.jairo.dao.ItensVendaDAO;
import br.com.jairo.modelo.ItensVenda;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author Jairo
*/
public class ListaPendente extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, SQLException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
ItensVendaDAO itensVendaDAO = new ItensVendaDAO();
try {
List listaItensPendentes = itensVendaDAO.getListaItensVendaPendentes();
request.setAttribute("sessaoItensPendentes", listaItensPendentes);
RequestDispatcher rd = request.getRequestDispatcher("/itens.jsp");
rd.forward(request, response);
} catch (SQLException erro) {
Logger.getLogger(ListaPendente.class.getName()).log(Level.SEVERE, null, erro);
}
}
Como fazer para mostrar estes itens do pedido em um mesmo formulário ou jsp?