Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Erro ao passar Objeto para jsp

Boa tarde,

estou com o seguinte erro quando passo um objeto para ser carregado na minha jsp.

javax.servlet.ServletException: javax.servlet.jsp.JspException: java.lang.NumberFormatException: For input string: "quantidade"

estou passando uma List.

```@RequestMapping("/meusPedidos") public ModelAndView meusPedidos(@AuthenticationPrincipal Usuario usuario){ ModelAndView modelAndView = new ModelAndView("/meusPedidos"); List pedidos = pDao.userPedido(usuario.getId()); modelAndView.addObject("pedido", pedidos); return modelAndView;

}```

pelo o que entendi ele esta tentando mostrar uma variável de um tipo em outro tipo de variável ?

Mas na minha classe Pedido não tenho nenhuma variável com o nome quantidade, eu tenho métodos getQuatidade, e na minha jsp não estou utilizando métodos, apenas quero pegar o id do pedido.

segue os métodos:

public Integer getQuantidade(PedidoItem item) {
        for (PedidoItem pedidoItem : itens) {
            if (item.equals(itens)) {
                return item.getQuantidade();
            }
        }
        return item.getQuantidade();
    }
public int getQuantidade(){
        int quantidade = itens.size();
        return quantidade;

    }

obrigado.

5 respostas

poderia colocar o código do seu jsp ?

obrigado Thiago.

<c:forEach var="pedido" items="${pedido}">
                <div class="request-details">
                    <div class="number-details">
                        <p>${pedido.id)}</p>
                    </div>
                </div>
            </c:forEach>

Gabriel, a exception é um java.lang.NumberFormatException é um erro de parse, em algum lugar você está passando a string "quantidade" em uma variável numérica, se não for no código java(nesse caso nem compilaria), verifica se em algum formulário você não substituiu o atributo name por value.

Thiago eu ja havia olhado mas não estou passando em nenhum lugar do meu projeto.

Eu estou passando uma List de Pedido, na minha classe Pedido eu tenho uma cardinalidade com outra classe chamada PedidoItem nessa classe eu tenho uma variável com esse nome mas ela é inteira.

cardinalidade na classe Pedido :

@OneToMany(fetch = FetchType.EAGER,mappedBy = "pedido", targetEntity = PedidoItem.class)
    private List<PedidoItem> itens = new ArrayList<PedidoItem>();

e minha variável na classe PedidoItem:

private int quantidade;

essa é a única variável com esse nome, em formulários não passo nada com esse nome, vou dar mais uma olhada pra ter certeza.

obrigado Thiago.

solução!

Thiago eu resolvi mas não sei oq era ainda, eu adicionei um "S" no <c:forEach var="pedido" items="${pedidos}">

acredito que ele não estava conseguindo iterar a lista e estava tentando acessar a variável pela lista e não pelo objeto.

obrigado.