Ajuda Com Projeto web[RESOLVIDO]

0 respostas
dsystem

Boa tarde pessoal,

É o seguinte. Estou desenvolvendo um ecommerce como projeto da facul faz uns 2 meses e a entrega final (infelizmente) é para amanhã, mas estou com diversas dúvidas, diversos erros, quase me desesperando.... Mas como sempre encontro ajuda aqui, resolvi postar.
Em primeiro lugar antes que falem que deixei para ultima hora(como muitos podem pensar), pelo contrário, estou desenvolvendo há dois meses, mas parece que nunca termina...

Bom, lá vai a dúvida. Estou na parte de fazer um "carrinho". Ainda estou meio em duvida de como será, mas estou tentando. O problema é o seguinte: criei uma action que lista todos os produtos, uma action que seria a do carrinho, onde pega os produtos que foram inseridos pelo usuário(na outra action) guarda e manda para a ultima action que é o finalizar. Porém, quando clico no botão inserir, da primeira action, ou melhor, do primeiro jsp, ele até entra na 2 action, mas logo na primeira linha da o seguinte erro:
exception

javax.servlet.ServletException: java.lang.NumberFormatException: For input string: ""
	org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:520)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:427)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
Eu sei que o erro está na primeira linha da Action e provavelmente pq ele não está encontrando o atributo, mas não sei como resolver. Por esse motivo, caso alguém possa me ajudar, estou postando meu código.

ACTION

public class ItensAction extends org.apache.struts.action.Action {    

    private final static String SUCCESS = "carrinho";
   
    public ActionForward execute(ActionMapping mapping, ActionForm  form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        
        
        int IdProduto = Integer.parseInt(request.getParameter("produtoId"));
        HttpSession session = request.getSession(true);
        List<ItemPedido> lista  = (List<ItemPedido>) session.getAttribute(SUCCESS);
        
        if(lista == null){
            lista = new ArrayList<ItemPedido>();
        }
        
        
        boolean existe = false;
        
        for(ItemPedido item : lista){
           if(item.getId() == IdProduto){
               item.setQuantidade(item.getQuantidade()+1);
               item.setTotal(item.getValorUnitario().multiply(new BigDecimal(item.getQuantidade())));
               //item.setTotal(item.getValorUnitario().multiply(item.getValorUnitario(), new MathContext(item.getQuantidade())));
               
               existe = true;
           }
        }
        if(existe == false){
            ProdutoDao mProduto = new ProdutoDaoImpl();
            Produto bProduto = mProduto.getProduto(IdProduto);
            ItemPedido bean = new ItemPedido();
            bean.setId(IdProduto);
            bean.setQuantidade(1);
            bean.getProduto().setNome(bProduto.getNome());
            bean.setValorUnitario(bProduto.getValor());
            bean.setTotal(bProduto.getValor().multiply(new BigDecimal(bean.getQuantidade())));               

            lista.add(bean);
        }
       session.setAttribute("carrinho",lista);
       
       //calcula o valor da compra
       BigDecimal total = new BigDecimal(0);
       for(ItemPedido item: lista){
           total = total.add(item.getTotal());
       }
       session.setAttribute("total",total);
       
        return mapping.findForward(SUCCESS);
        
    }
}
JSP
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<%@ page import="java.util.List,br.com.ecommerce.model.bean.Produto"%>

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="h" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <script>
        function action(){
	form = document.forms[0];
	form.action = 'carrinho.do';
	form.submit();
}
    </script>
<title>Resultado da Busca de Produtos</title>
</head>
<body>
   <form 
  &gt;<font face="cambria">
 &lt;table border="0" align ="center" cellspacing="0" cellpadding="0"&gt;
		&lt;tr&gt;
			&lt;td colspan="4"&gt;				
				<img />
			&lt;/td&gt;		
		&lt;/tr&gt;
                 
    
  &lt;%!   
    List&lt;Produto&gt; lista;
    %&gt;
    &lt;%
    lista = (List&lt;Produto&gt;)session.getAttribute(&quot;lista&quot;);
    if(lista.isEmpty()) {
    %&gt;
      <br><font color="FF0000">Nenhum produto encontrado!</font><br>
    &lt;%
    } else {
    	%&gt;
        &lt;table bgcolor=#E8E8E8" bordercolor="#009ACD" cellpadding="1" width="960px"  border="4" align="center"&gt;
    	  &lt;tr&gt;
           &lt;th&gt;Cód. do Produto&lt;/th&gt;
           &lt;th&gt;Produto&lt;/th&gt;
    	    &lt;th&gt;Nome&lt;/th&gt;
    	    &lt;th&gt;Descricao&lt;/th&gt;
             &lt;th&gt;Valor Unitario&lt;/th&gt;
             &lt;th&gt;Valor Promocional&lt;/th&gt;
             &lt;th&gt;Quantidade&lt;/th&gt;
             
    	  &lt;/tr&gt;
    	&lt;%
    	for(Produto p: lista) {
    	%&gt;
    	  &lt;tr&gt;
            &lt;td align="center"&gt;&lt;%=p.getId() %&gt;&lt;/td&gt;
            &lt;td align="center"&gt;<img    />&lt;/td&gt;            
    	    &lt;td align="center"&gt;&lt;%=p.getNome() %&gt;&lt;/td&gt;
    	    &lt;td align="center"&gt;&lt;%=p.getDescricao() %&gt;&lt;/td&gt;
             &lt;td align="center"&gt;&lt;%=p.getValor() %&gt;&lt;/td&gt;
             &lt;td align="center"&gt;&lt;%=p.getValorPromocional() %&gt;&lt;/td&gt;
             &lt;td align="center"&gt;&lt;%=p.getQuantidade() %&gt;&lt;/td&gt;             
             &lt;td align="center"&gt;
             &lt;!-- Onde faço a chamada da action --&gt;
             <a >&lt;%=p.getId()%&gt; &gt;
         <img ></a>&lt;/td&gt;
    	  &lt;/tr&gt;
    	&lt;%
    	}
    	%&gt;
    	  &lt;/table&gt;
    	&lt;%
    }
  %&gt;
  
  <br>
  &lt;hr&gt;  
  <a >Realizar outra busca</a><br><br>
  </font>
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;

Não creio que seja problema no struts config, por esse motivo não postarei...
Ah, o framework que uso é struts 1. E me perdoem se algo está errado, sou iniciante em java =/

Desde já agradeço!

Criado 23 de junho de 2010
Respostas 0
Participantes 1