Olá pessoal, é o seguinte. Estou fazendo 1 sistema de carrinho de compras e estou guardando o carrinho(array) na sessão. Agora estou tentando fazer a parte para deletar o produto do carrinho.
O que eu queria fazer é o seguinte, assim que o cara clicar no link para deletar o produto, eu passaria o tal índice que o produto está no array para a action e um método o deletaria, pelo que vi é a maneira mais fácil de se fazer isso, porém estou tendo problemas na hora de passar o tal índice do produto para a action segue o código:org.apache.jasper.JasperException: An exception occurred processing JSP page /carrinho-compras.jsp at line 51
48: <tr>
49: <td> ${item.livro.nome} </td>
50: <td> <center>${item.quantidade}</center> </td>
51: <td> <a href="removeItem?cod=${item.lenght}"> X </a> </td>
<table width="500px">
<tr>
<th> Nome </th>
<th> Quantidade </th>
<th> Preço </th>
<th> Excluir </th>
<th> TOTAL </th>
</tr>
<c:forEach var="item" items="${carrinhoCompras.itens}">
<tr>
<td> ${item.livro.nome} </td>
<td> <center>${item.quantidade}</center> </td>
<td> <a href="removeItem?cod=${item.lenght}"> X </a> </td>
<td>
<fmt:setLocale value="pt_BR"/>
<center> R$: <fmt:formatNumber value="${item.livro.preco}" minFractionDigits="2"/> </center>
</td>
</c:forEach>
<td>
<font color="red">
<center> R$: <fmt:formatNumber value="${carrinhoCompras.total}" minFractionDigits="2" /> </center>
</font>
</td>
</tr>
</table>
public class RemoveItemAction {
private int cod ;
@Action(value="removeItem", results={
@Result(name="ok", location="/carrinho-compras.jsp")
})
public String execute() {
Carrinho carro = (Carrinho) ActionContext.getContext().getSession().get("carrinhoCompras") ;
carro.removeLivro(cod) ;
return "ok" ;
}
public int getCod() {
return cod;
}
}
public class Carrinho {
private List<ItemCarrinho> itens = new ArrayList<ItemCarrinho>();
private Double total = 0.0 ;
public void adicionaLivro(ItemCarrinho l) {
this.itens.add(l) ;
this.total = total + (l.getLivro().getPreco() * l.getQuantidade()) ;
}
public void removeLivro(int l) {
this.total = total - itens.get(l).getLivro().getPreco() ;
this.itens.remove(l) ;
}
// getters and setters
}
Grato.