Dúvida List JSP

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.teste.Controller” %>
<%@page language=“java” import=“java.util.List.*;” %>
<%@page language=“java” import=“java.util.ArrayList;” %>

Crio um objeto da classe

<%
Controller obj = new Controller();
%>

Minha dúvida é nessa parte. Como eu resgato os valores da List para mostrar na tela do usuario.
Tentei assim:

<%
List list = new ArrayList();
list = obj.getContratadas();
%>

Mas dessa forma ocorre um erro.

Teria como eu mostrar esse List em um <c:forEach var=“lista” items="${???}">

Grato pela ajuda.

abs
Cris

Fala cara, blza?

Aparentemente esta certo, pelo menos não consegui encontrar erros.
Poste qual o erro que dá. É exatamente nesta linha: list = obj.getContratadas();??
Ah, quando for postar códigos, poste entre as tags Code ok

Abraço

coloque tudo dentro do mesmo bloco scriptlet, assim:

<%
Controller obj = new Controller();
List list = new ArrayList();
list = obj.getContratadas();
%>

[]´s

Pessoal esta tudo no mesmo bloco quando executo meu JSP ele mostra o erro abaixo:

exception 

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

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

No meu código quando crio o objeto list da class List, ele fala informa (cannot find symbol)

Segue o código para analise:

Pagina index.jsp


<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@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>

Minha classe esta assim:


package br.com.gaudi.util;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class Controller {
    private Connection conn;

    public Controller() throws Exception{
        try{
            this.conn = connectionFactory.getConnection();
        }catch(Exception e){
            throw new Exception ("Erro: " + e.getMessage());
        }
    }
    
    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());
        }
    }
}

abraço
Cris

Então, faz o seguinte:
Declara a List fora do bloco try e da um return depois do catch

[code]public List getContratadas() throws Exception{
PreparedStatement ps = null;
Connection conn = null;
ResultSet rs = null;
List list = new ArrayList();
try{
conn = this.conn;
ps = conn.prepareStatement(“Select id,name_contract from xxg_contract”);
rs = ps.executeQuery();

        while(rs.next()){  
            Integer id = rs.getInt(1);  
            String contract = rs.getString(2);  
            list.add(id, contract);  
        }  

    }catch(Exception e){  
        throw new Exception(e.getMessage());  
    }
 return list;  
}  

} [/code]
Veja se vai.

Abraço

Thiago, efetuei as alterações conforme falou, mas ocorre o mesmo problema.

Vlw

abs

O rapaz, vc viu como tu importou os pacotes???

<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@page language="java" import="br.com.gaudi.util.Controller" %> <%@page language="java" import="java.util.List.*;" %> <%@page language="java" import="java.util.ArrayList;" %>
Tem ponto e vírgula no final, no JSP não pode colocar.
no java.util.List não tem mais nenhuma classe, ela é a última, é só fazer

<%@page import="java.util.List, java.util.ArrayList" %> 

Vc acertou no import do Controller mas deu mancada nos imports do ArrayList e List.
Vc tbm pode utilizar a vírugla(,) como eu utilizei acima, para separar os pacotes, ou simplesmente da um java.util.*
Ah, em relação ao page language só declara uma vez ok?

Mano, agora vai em :smiley:

Abraço

Fala Thiago blz!

Puts que vacilo meu, nossa nem tinha percebido isso, sobre os imports foi blz, o List não apresentou mais aquela msg, porem ao rodar, ele gerou outro erro abaixo:

type Exception report

message

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

exception 

javax.servlet.ServletException: java.lang.Exception: Index: 1, Size: 0
root cause 

java.lang.Exception: Index: 1, Size: 0

Vlw cara, abraço

Fala,

Então, da uma olhada neste tópico: http://www.guj.com.br/posts/list/55911.java
Vc chegou a adicionar o mysql-connector no seu projeto???
Este link fala sobre o Postgre, mas é só aplicar ao MySQL.

Abraço

Obrigado pela ajuda pessoal, problema resolvido.