Duvida com JSP

8 respostas
G

Bom dia, estou com alguns problemas tenho um servelet e preciso fazer um jsp para poder tirar o html dele porem estou com muitas duvidas.

meu servelet
package br.com.musicstore.controller.carrinho;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Iterator;

import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.musicstore.controller.GenericServlet;
import br.com.musicstore.domain.CarrinhoCompra;
import br.com.musicstore.domain.pedido.ItemDePedido;
import br.com.musicstore.util.Formatter;
import br.com.musicstore.view.HtmlUtil;

public class VisualizarCarrinhoCompra extends GenericServlet implements Servlet {
	private static final long serialVersionUID = 1L;

	protected void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		CarrinhoCompra carrinho = (CarrinhoCompra) request.getSession().getAttribute("carrinho");
		
		String html = HtmlUtil.getInstance().getHeader(new String[] {"produto.js"}, "Carrinho de compras", request.getSession(), request);
		
		if(carrinho != null && carrinho.getProdutos().size() > 0) {
			
			HashMap<Integer, ItemDePedido> itens = carrinho.getProdutos();
			html += "<table width='700px' cellspacing='0' class='styleTable' cellpadding='2' width='600'>" +
			"<tr bgcolor='silver'>" +
			"<td></td>" +
			"<td>Produto</td>" +
			"<td align='center'>Qtde</td>" +
			"<td>Valor Unitario</td>" +
			"<td>Valor Total</td>" +
			"</tr>";

			for (Iterator<Integer> iterator = itens.keySet().iterator(); iterator.hasNext();) {
				ItemDePedido item = (ItemDePedido) itens.get(iterator.next());

				html += "<tr class='listagem'>" +
				"<td width='16px'><a href='/LojaVirtual/pages/produto/RemoverProdutoDoCarrinho.do?codProduto="+item.getProduto().getCodigoProduto()+"' ><img border='0' src='/LojaVirtual/pages/images/cross.png' /></a></td>" +
				"<td width='300px' class='bordaEsqTd'>"+item.getProduto().getNome()+"</td>" +
				"<td width='10' align='center' class='bordaEsqTd'><input type='text' size='4' name='quantidade' id='quantidade"+item.getProduto().getCodigoProduto()+"' value='"+item.getQtde()+"' /><a href='#' onclick='alterarQuantidade("+item.getProduto().getCodigoProduto()+", document.getElementById(\"quantidade"+item.getProduto().getCodigoProduto()+"\").value);'><img border='0' src='/LojaVirtual/pages/images/save.png' /></a></td>" +
				"<td width='50px' class='bordaEsqTd'>"+Formatter.getInstance().formatarDouble(item.getValorUnitario())+"</td>" +
				"<td width='50px' class='bordaEsqTd'>"+Formatter.getInstance().formatarDouble(item.getValorUnitario() * item.getQtde())+"</td>" +
				"</tr>";

			}
			html += "</table>" +
					"<form id='frmAlteraQtde' action='SalvarQuantidadeItemCarrinho.do' method='post'>" +
					"<input type='hidden' id='quantidade' name='quantidade' />" +
					"<input type='hidden' id='codProduto' name='codProduto' />" +
					"</form>" +
					"<br /><a href='/LojaVirtual/pages/pedido/RealizarPedido.do'><img border='0' src='/LojaVirtual/pages/images/delete-from-basket.png' /> Realizar Pedido</a>";
		} else {
			html += "<br>Você ainda não possui itens no carrinho";
		}
		html += HtmlUtil.getInstance().getFooter();

		PrintWriter writer = response.getWriter();
		writer.print(html);

	}

}

O meu JSP em construçao

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	import="br.com.musicstore.domain.pedido.ItemDePedido" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
	ItemDePedido item = ((ItemDePedido) request.getAttribute("item"));
%>
<html>
<head>
<link href='/LojaVirtual/pages/css/css.css' rel='stylesheet'
	type='text/css' />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<table width='700px' cellspacing='0' class='styleTable' cellpadding='2' width='600'>
	<tr bgcolor='silver'>
		<td></td>
		<td>Produto</td>
		<td align='center'>Qtde</td>
		<td>Valor Unitario</td>
		<td>Valor Total</td>
	</tr>
	<tr class='listagem'>
		<td width='16px'><a
			href='/LojaVirtual/pages/produto/RemoverProdutoDoCarrinho.do?codProduto= <%=item.getProduto().getCodigoProduto()%>'><img
			border='0' src='/LojaVirtual/pages/images/cross.png' /></a></td>
		<td width='300px' class='bordaEsqTd'><%=item.getProduto().getNome()%></td>
		<td width='10' align='center' class='bordaEsqTd'><input
			type='text' size='4' name='quantidade'
			id='quantidade"<%=item.getProduto().getCodigoProduto()%> '
			value='<%=item.getQtde()%> ' /><a href='#'
			onclick='alterarQuantidade( <%=item.getProduto().getCodigoProduto()%> , document.getElementById(\"quantidade").value);'><img
			border='0' src='/LojaVirtual/pages/images/save.png' /></a></td>
			<td width='50px' class='bordaEsqTd'>
			<% Formatter.getInstance().formatarDouble(item.getValorUnitario()); %>
			</td>
			<td width='50px' class='bordaEsqTd'>
			<% Formatter.getInstance().formatarDouble(item.getValorUnitario() * item.getQtde()); %>
			</td></tr>
			</table>
			<form id='frmAlteraQtde' action='SalvarQuantidadeItemCarrinho.do' method='post'>
			<input type='hidden' id='quantidade' name='quantidade' />
			<input type='hidden' id='codProduto' name='codProduto' />
			</form>
			<br /><a href='/LojaVirtual/pages/pedido/RealizarPedido.do'><img border='0' src='/LojaVirtual/pages/images/delete-from-basket.png' /> Realizar Pedido</a>
		</head>
		<body>

		</body>
		</html>

8 Respostas

matheuslmota

Sim, mas qual eh a duvida?

G

Bem como estou começando a mecher com JEE eu to em duvida se estou indo certo e por exemplo no caso do iterator que eu fiz no meu servelet eu vou ter que faze-lo no meu jsp correto? e meu formatter dentro do <% %> está dando erro nao sei o motivo e meu servelet ta ficando agora assim e quero saber se é o correto

public class VisualizarCarrinhoCompra extends GenericServlet implements Servlet {
	private static final long serialVersionUID = 1L;

	protected void execute(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		CarrinhoCompra carrinho = (CarrinhoCompra) request.getSession()
				.getAttribute("carrinho");

		request.setAttribute("carrinho", carrinho);

		request.getRequestDispatcher("/pages/VizualizarCarrinhoCompra.jsp")
				.forward(request, response);
	}

}
matheuslmota

Nao cara num precisa fazer o iterator no jsp nao, no jsp tu coloca soh como tu quer que a informacao seja passada para o navegador, no servlet eh q tu coloca o processamento java. E qual o erro q ta dando no Formatter?
Abraco :lol:

G

matheuslmota:
Nao cara num precisa fazer o iterator no jsp nao, no jsp tu coloca soh como tu quer que a informacao seja passada para o navegador, no servlet eh q tu coloca o processamento java. E qual o erro q ta dando no Formatter?
Abraco :lol:

entao meu servelet dessa forma ja esta certo?

nao ta querendo inicia-lo fica mostrando erro pois nao sei qual iniciação que eu coloco de JavaScript se é <%= %> simplesmente ele nao inicia…

matheuslmota

A ja ia me esquecendo, tah faltando uma coisa: um metodo doGet ou um metodo doPost. Acho que nao ta inicializando pelo seguinte, como no jsp nao foi definido o tipo de solicitacao o padrao vai ser usar o doGet, mas ele nao esta definido no seu servlet, e o conteiner web nao sabe o q fazer.
Algo do tipo

doGet(HttpServletRequest request, HttpServletResponse response) {

//seu codigo entra aqui!!!

}

Falou :stuck_out_tongue:

luan03

Da uma olhada nas camadas MVC acho que isso pode te ajudar, na internet vc pode achar muitos artigos explicando melhor.

G

matheuslmota:
A ja ia me esquecendo, tah faltando uma coisa: um metodo doGet ou um metodo doPost. Acho que nao ta inicializando pelo seguinte, como no jsp nao foi definido o tipo de solicitacao o padrao vai ser usar o doGet, mas ele nao esta definido no seu servlet, e o conteiner web nao sabe o q fazer.
Algo do tipo

doGet(HttpServletRequest request, HttpServletResponse response) {

//seu codigo entra aqui!!!

}

Falou :stuck_out_tongue:

naoo nao cara essa questao é feita no GenericServelet entendeu? tipo la que encaminha eu so herdo o execute do meu genericServelet =) tanto que funciona normal com esse servelet ai

G

meu trabalho ta todo em MVC ja tanto que estou tentando tirar o html do servelet +) por isso to tentando fazer jsp

Criado 16 de junho de 2010
Ultima resposta 16 de jun. de 2010
Respostas 8
Participantes 3