Displaytag não acha a property

3 respostas
andreacerqueira

alguém pode me ajudar? já fiz de tudo e não funciona, fica dizendo que a propriedade valor_plano não existe.

root cause
javax.servlet.ServletException: javax.servlet.jsp.JspException: Exception: [.LookupUtil] Error looking up property "valor_plano" in object type "puc.pilates.modelo.Plano". Cause: Unknown property 'valor_plano' on class 'class puc.pilates.modelo.Plano'
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:907)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:840)
	org.apache.jsp.WEB_002dINF.views.plano_002dlista_jsp._jspService(plano_002dlista_jsp.java:207)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
	org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
	org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

meu DAO:

public List<Plano> lista() {
        try {
            List<Plano> planos = new ArrayList<Plano>();

            String sql = "SELECT * FROM plano ORDER BY tipo ASC";
            PreparedStatement stmt = this.connection.prepareStatement(sql);
            ResultSet rs = stmt.executeQuery();

            while (rs.next()) {
                // criando o objeto Plano
                Plano plano = new Plano();
                plano.setId(rs.getLong("id"));
                plano.setTipo(rs.getString("tipo"));
                plano.setValorPlano(rs.getString("valor_plano"));
                plano.setDiaPlano(rs.getLong("dia_plano"));

                // adicionando o objeto na lista
	            planos.add(plano);
            }
            
            //System.out.println(planos);

            rs.close();
            stmt.close();
            System.out.println("DADOS LISTADOS COM SUCESSO!");
            return planos;

        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

minha classe:

public class Plano {
	
	...

	private String valor_plano;

	private Long dia_plano;

	public String getValorPlano() {
		return valor_plano;
	}

	public void setValorPlano(String valor_plano) {
		this.valor_plano = valor_plano;
	}

	public Long getDiaPlano() {
		return dia_plano;
	}

	public void setDiaPlano(Long dia_plano) {
		this.dia_plano = dia_plano;
	}
	
}

3 Respostas

Hebert_Coelho

Você tem que escrever de acordo com seu get/set e não o nome da sua propriedade.

getValorPlano e no padrão javabens é sem o get ficando apenas valorPlano.

Hebert_Coelho

Outra coisa é o padrão de nomeclatura dos seus atributos. O correto seria valorPlano e não valor_plano. Cuidado como você nomeia seus atributos. Pode parecer bobeira, mas isso é capaz de eliminar pessoas em entrevistas.

andreacerqueira

Muitoooooo obrigado, salvou minha vida :slight_smile:

Criado 29 de janeiro de 2013
Ultima resposta 29 de jan. de 2013
Respostas 3
Participantes 2