Boa tarde pessoal
Estou com o seguinte problema:
Estou desenvolvendo um ecommerce pra facul e estou fazendo um carrinho…
tenho uma action que lista todos os produtos para o cliente,através do jsp e dentro do jsp tem um botão comprar(em cada produto). Quando vc clica no botão comprar, esse produto tem que ser enviado para outra Action,q seria a Action do carrinho, onde ele fica em uma sessão e dpois finaliza a compra.
Está aparecendo a lista normal, mas qdo clico no botão comprar, dá o seguinte erro:
exception
javax.servlet.ServletException: java.lang.ClassCastException: br.com.ecommerce.model.bean.Produto
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)
root cause
Ah minha Action está da seguinte forma:
package struts.action;
import br.com.ecommerce.model.bean.ItemPedido;
import br.com.ecommerce.model.bean.Produto;
import br.com.ecommerce.model.dao.ProdutoDao;
import br.com.ecommerce.model.dao.impl.ProdutoDaoImpl;
import java.math.BigDecimal;
import java.math.MathContext;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForward;
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 {
Integer IdProduto = new Integer(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.getProduto().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.setProduto(bProduto);
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);
}
}
Quando debugo o projeto, dá erro nessa linha
for(ItemPedido item : lista){
Alguem sabe me dizer o pq???
Ah, a minha Action inicial, que lista os produtos é essa
public class PedidoAction extends org.apache.struts.action.Action {
private final static String SUCCESS = "venda";
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
HttpSession session = request.getSession();
int codigo;
List<Produto> lista;
ProdutoDao dao = new ProdutoDaoImpl();
try{
lista = dao.listaPedido();
}catch(Exception ex){
lista = dao.lista();
}
session.setAttribute("lista", lista);
session.setAttribute("carrinho", lista);
return mapping.findForward(SUCCESS);
}
}
Pessoa, POR FAVOR, me ajudem…estou ha 3 meses desenvolvendo esse projeto e agr a professora pediu pra completar uma compra e eu não sei como fzer…E tenho que entregar amanha…
TEM que ser em Struts 1 =/
Desde já agradeço!