3
respostas

Não encontra a propriedade "categorias"

Quando é acessado "http://localhost:8080/projeto-jpa-2/produto/3/form", está informando: org.apache.jasper.JasperException: An exception occurred processing [WEB-INF/views/produto/form.jsp] at line [64]

61: <c:forEach items="${categorias}" var="categoria" varStatus="status">

62: <c:set var="contains" value="false"/>

63:

64: <c:forEach items="${produto.categorias}" var="categoriaProduto" varStatus="statusProduto">

65: <c:if test="${categoriaProduto.id == categoria.id}">

66: <c:set var="contains" value="true"/>

67:

org.apache.jasper.el.JspPropertyNotFoundException: /WEB-INF/views/produto/form.jsp(64,6) '${produto.categorias}' Property [categorias] not found on type [br.com.caelum.model.Produto]

Só que em minha classe Produto, está:

@ManyToMany

private List categorias = new ArrayList<>();

3 respostas

Rogério,

O motivo pode ser porque a sua classe model "Produto" não tem um método publico get para o atributo "categorias".

Tenta criar esse método e veja se resolve:

public List<Categoria> getCategorias(){
    return this.categorias;
}

O pior é que tem. Eu fui acompanhando todas as aulas e fazendo tudo o que era feito nas aulas. Quando não funcionou, baixei os projetos das aulas e sobrescrevi o que tinha feito e, ainda assim, não funciona. :(

Oi Rogério, sou aluno tambem, vai firme e persista que eu fiz a aula e funciona sim.

Quando acontece esse tipo de erro, a primeira coisa que eu checo é o controller para verificar que está passando a variável para view.

Crie um sysout no controller, se tudo estiver certinho é o nome do atributo na view que está errado.

Pelo nome JspPropertyNotFoundException acredito que seja o nome da variavel na Jsp que esteja diferente do controller