Consigo listar todos os livros, mas ao adicionar um item ao carrinho, uma excessão é levantada no arquivo itens.jsp. Pelo que entendi, o método getQuantidade não está presente na classe CarrinhoCompras, mas no código, o método está incluso. Segue o log do erro:
org.apache.jasper.JasperException: An exception occurred processing [/WEB-INF/views/carrinho/itens.jsp] at line [117]
114: <td class="numeric-cell">${item.tipoPreco}</td>
115: <td class="quantity-input-cell"><input type="number" min="0"
116: id="quantidade" name="quantidade"
117: value="${carrinhoCompras.getQuantidade(item)}" /></td>
118: <td class="numeric-cell">${carrinhoCompras.getTotal(item)}</td>
119: <td class="remove-item">
120: <form action="" method="POST">
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:617)
... Depois vem:
Root Cause
javax.el.MethodNotFoundException: Method not found: class br.com.casadocodigo.loja.models.CarrinhoCompras.getQuantidade(br.com.casadocodigo.loja.models.CarrinhoItem)
javax.el.Util.findWrapper(Util.java:373)
javax.el.Util.findMethod(Util.java:219)
javax.el.BeanELResolver.invoke(BeanELResolver.java:149)
org.apache.jasper.el.JasperELResolver.invoke(JasperELResolver.java:147)
...
Na classe CarrinhoCompras, tem dois métidos getQuantidade. Seguem eles:
private int getQuantidade(CarrinhoItem item) {
if (!itens.containsKey(item)) {
itens.put(item, 0);
}
return itens.get(item);
}
public int getQuantidade() {
return itens.values().stream().reduce(0,
(proximo, acumulador) -> proximo + acumulador);
}
Alguém pode me explicar como eu resolvo este problema?