Erro jstl com arraylist

3 respostas
ieohajp

to Desenvolvendo uma aplicacao Java e to com seguinte problema
vou detalhar pra melhor compreensao

minnha BEAN - cliente

package JBean;

public class Cliente {

private String   cnpj ;
    private String   cliente;
    private Contato  fone     = new Contato();
    private Endereco endereco = new Endereco();
    
    
   public Cliente(){
       
   } 
   
   public Cliente(String cnpj, String cliente, Contato fone, Endereco endereco){
       this.cnpj     = cnpj;
       this.cliente  = cliente;
       this.fone     = fone;
       this.endereco = endereco;
   }     

    public String getCpnj() {
        return cnpj;
    }

    public void setCnpj(String cnpj) {
        this.cnpj = cnpj;
    }

    public String getCliente() {
        return cliente;
    }

    public void setCliente(String cliente) {
        this.cliente = cliente;
    }

    public Contato getFone() {
        return fone;
    }

    public void setFone(Contato fone) {
        this.fone = fone;
    }

    public Endereco getEndereco() {
        return endereco;
    }

    public void setEndereco(Endereco endereco) {
        this.endereco = endereco;
    }

}

MEU DAO - ListaCLIENTE

public static ArrayList ListaCliente() throws SQLException, ClassNotFoundException{

ArrayList <Cliente> listapessoa = null;
        Cliente    pessoa               = null;
        
	  
	    conexao        = ConexaoDB.getConnection();   
		Statement  stm = conexao.createStatement();
			
		ResultSet resultado   = stm.executeQuery("SELECT * FROM tb_clientes");
		
		
		listapessoa = new ArrayList<Cliente>();
		
		while (resultado.next()) {
		        pessoa = new Cliente();  
		        pessoa.setCnpj(resultado.getString("CNPJ"));
			    pessoa.setCliente(resultado.getString("Cliente"));
			    pessoa.getEndereco().setRua(resultado.getString("Rua"));
			    pessoa.getEndereco().setBairro(resultado.getString("bairro"));
			    pessoa.getEndereco().setCidade(resultado.getString("Cidade"));
			    pessoa.getEndereco().setNumero(resultado.getString("numero"));
			    pessoa.getEndereco().setComplemento(resultado.getString("Complemento"));
			    pessoa.getFone().setCelular(resultado.getString("celular"));
			    pessoa.getFone().setFoneresidencial(resultado.getString("foneresidencial"));
			    pessoa.getFone().setFonetrabalho(resultado.getString("fonetrabalho"));
			    
			    listapessoa.add(pessoa);
		      }  
		resultado.close();
		stm.close();
		
		return listapessoa;
		
  }

MEU SERVLET

public class ServletLista extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{

try {

ArrayList pessoa = new ArrayList();
try {
			pessoa = OperacaoCliente.ListaCliente();
			
			
		} catch (SQLException e) {
			
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			
			e.printStackTrace();
		}
   RequestDispatcher d ;
   request.setAttribute("listapessoa",pessoa);
   d=  request.getRequestDispatcher("ListaCliente.jsp");
   d.forward(request, response); 
     } finally { 
        
     }
 }

MEU ARQUIVO JSP

<c:forEach var="lista" items="${listapessoa}">
          
        <tr><td><c:out value="${lista.cnpj }" /></td>
            <td><c:out value="${lista.cliente}" /></td>
            
            <td>                </td>
        </tr>
       </c:forEach>

o seguinte problema quando retiro o campo lista.cnpj e coloco qualquer um outro o sistema fuciona blz mais quando coloco ele como visto acima
mostra o seguinte erro.

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /ListaCliente.jsp at line 26

23:
24: <c:forEach var=“lista” items="${listapessoa}">
25:
26:

<c:out value="${lista.cnpj }" />
27: <c:out value="${lista.cliente}" />
28:
29:
Stacktrace:

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

Servlets.ServletLista.doGet(ServletLista.java:36)

javax.servlet.http.HttpServlet.service(HttpServlet.java:690)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

javax.el.PropertyNotFoundException: Property cnpj not readable on type java.lang.String

javax.el.BeanELResolver$BeanProperty.read(BeanELResolver.java:259)

javax.el.BeanELResolver$BeanProperty.access$000(BeanELResolver.java:209)

javax.el.BeanELResolver.getValue(BeanELResolver.java:60)

javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)

org.apache.el.parser.AstValue.getValue(AstValue.java:114)

org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)

org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:923)

org.apache.jsp.ListaCliente_jsp._jspx_meth_c_005fout_005f0(ListaCliente_jsp.java:166)

org.apache.jsp.ListaCliente_jsp._jspx_meth_c_005fforEach_005f0(ListaCliente_jsp.java:127)

org.apache.jsp.ListaCliente_jsp._jspService(ListaCliente_jsp.java:84)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

Servlets.ServletLista.doGet(ServletLista.java:36)

javax.servlet.http.HttpServlet.service(HttpServlet.java:690)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

OBS: JA DEBUGUEI E TA TRASENDO OS DADOS DO CAMPO CNPJ MOSTRA AS INFORMACOES BLZ MAIS NA HORA DE EXIBIR MOSTRA ESSE ERRO
ALGUEM PODERIA ME AJUDAR?

3 Respostas

A

A stacktrace indica que não encontrou a propriedade cnpj.

Você criou o método getCnpj()? Verifique se tem o método.

javax.el.PropertyNotFoundException: Property 'cnpj' not readable on type java.lang.String
ieohajp

MAIS QUANDO DEBUG ELE MOSTRA TODOS OS ITENS
INCLUSIVE O CNPJ

M

Olá, o amigo acima tem razão. O seu metodo get para o campo CNPJ está com as letras trocadas.

O seu código está assim

public String getCpnj() { return cnpj; }

o correto não seria getCnpj()?

Criado 29 de maio de 2009
Ultima resposta 29 de mai. de 2009
Respostas 3
Participantes 3