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
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.