Erro usando List [RESOLVIDO]

4 respostas
C

Boa Noite Pessoal,
Tenho uma classe chamada Controller e dentro dessa classe tenho um metodo chamado getContratadas que retorna um List.

public List getContratadas() throws Exception{
        PreparedStatement ps = null;
        Connection conn = null;
        ResultSet rs = null;

        try{
            conn = this.conn;
            ps = conn.prepareStatement("Select id,name_contract from xxg_contract");
            rs = ps.executeQuery();
            List list = new ArrayList();

            while(rs.next()){
                Integer id = rs.getInt(1);
                String contract = rs.getString(2);
                list.add(id, contract);
            }
            return list;
        }catch(Exception e){
            throw new Exception(e.getMessage());
        }
    }

Na pagina JSP eu importo essa classe

<%@page language="java" import="br.com.gaudi.util.Controller" %>
<%@page language="java" import="java.util.List.*;" %>
<%@page language="java" import="java.util.ArrayList;" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<%
    Controller obj = new Controller();
    List list = new ArrayList();
    list = obj.getContratadas();
%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Sistema Teste</title>
    </head>
    <body>
        <!-- AQUI VOU COLOCAR O LOOP -->
    </body>
</html>

Queria armazenar no meu list as informações do list retornado da minha classe

Erro:

type Exception report

message

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

exception 

org.apache.jasper.JasperException: PWC6033: Unable to compile class for JSP

PWC6197: An error occurred at line: 9 in the jsp file: /index.jsp
PWC6199: Generated servlet error:
string:///index_jsp.java:58: cannot find symbol
symbol  : class List
location: class org.apache.jsp.index_jsp

abraço
Cristian

4 Respostas

N

Cara eu fiz uma modificação no seu código veja se te ajuda !

public class XXG_CONTRACT {
   private int id;
   private String name_contract;
   // faça os gets and setrs

}

public List getContratadas() throws Exception{   
        PreparedStatement ps = null;   
        Connection conn = null;   
        ResultSet rs = null;   
        XXG_CONTRACT xxx=null;
        try{   
            conn = this.conn;   
            ps = conn.prepareStatement("Select id,name_contract from xxg_contract");   
            rs = ps.executeQuery();   
            List list<XXG_CONTRACT> = new ArrayList();   
  
            while(rs.next()){   
                   
                   xxx=new XXG_CONTRACT();
                   
                   xxx.setID(rs.getInt("id"));
                   xxx.setContract(rs.getString("name_contract"));

                list.add(xxx);
                xxx=null;   
            }   
            return list;   
        }catch(Exception e){   
            throw new Exception(e.getMessage());   
        }   
    }
C

N3, efetuei os testes era isso mesmo que eu queria, agora na minha pagina JSP eu consigo receber o list retornado pelo metodo da classe, obrigado amigo.

Controller obj = new Controller();
List lista = new ArrayList();
lista = obj.getContratadas();

Agora estou deparando com outro problema pessoal, quando mando observar o objeto LISTA eu vejo que esta com todos os valores, porem não consigo imprimir os valores na tela, não conheço muiti LIST, peguei alguns codigo na net e estou testando até chegar no resultado. Estou usando o seguinte código para mostrar os valores.

Integer i;

    for(i=0;i&lt;lista.size();i++){
         out.println(lista.get(i));
    }

Dessa forma ele imprimi isso: br.com.gaudi.util.XXG_CONTRACT@db64c5

Alguem poderia me dar uma luz como eu escrevo os valores na tela que estão dentro da list.

abs
Cristian

>

thiago.correa

Isso porque a tua lista possui um objeto do tipo XXG_CONTRACT, você deve, ou implementar o método toString ou para cada objeto na lista você deve imprimir os atributos, algo do tipo

for(int i=0;i<lista.size();i++){   
XXG_CONTRACT xxx = (XXG_CONTRACT) lista.get(i)
     out.println(xxx.getContract());   
     //outros atributos que queira imprimir
}
C

Obrigado pessoal pela ajuda, problema resolvido.

abraço
Cristian

Criado 6 de junho de 2009
Ultima resposta 15 de jun. de 2009
Respostas 4
Participantes 3