Pessoal estou iniciando o estudo em JSP e com a maior dificuldade em um
quesito e gostaria de pedir ajuda de voces. Estou querendo listar uma query
em um JSP utilizando JSTL. Já estou quase 10 horas pesquisando no Google,
não estou conseguindo sucesso.
Obs: A conexao com o Oracle e a conulta à tabela está perfeita, o unico
problema é o retorno, pois só apresenta a ultimo registro. Percebi que
getNome() percorre todos os registros, mas não estou conseguindo armazenhar
todo os registros em um objeto para ser listado via forEach do JSTL. Nem
mesmo na classe Testar.java
Já tentei com List Map mas tambem não consegui.
Segue abaixo o codigo:
******** ConexaoOra.java - Conexao Oracle
import java.sql.*;
public class ConexaoOra {
public static String status = “”;
public static Statement stm = null;
public static Connection conn = null;
public static Connection obterConexao() {
Connection con = null;
ResultSet rs;
String SQL = null;
status = “Conexão aberta!”;
try{
DriverManager.registerDriver (new
oracle.jdbc.driver.OracleDriver());
conn = DriverManager.getConnection
(“jdbc:oracle:thin:@servidor:1521:BABCO”, “USUARIO”, “SENHA”);
stm = conn.createStatement();
}
catch (SQLException e) {
status = e.getMessage();
}
catch (Exception e) {
status = e.getMessage();
}
return conn;
}
}
******* GuestJP.classe SETs GETs
public class GuestJP {
String nomeadverso = “”;
String idregistro = “”;
public void setIdregistro (String idregistro) { this.idregistro =
idregistro;}
public String getIdregistro() {return this.idregistro;}
public void setNomeadverso (String nomeAdverso) { this.nomeadverso =
nomeAdverso;}
public String getNomeadverso() {return this.nomeadverso;}
}
public class JanelaPrincipal {
GuestJP guest = new GuestJP();
ResultSet rs;
Statement stm = null;
private String SQL = null;
String URL = null;
private String status = “”;
public String pesquisacampo = “”;
public void setPesquisacampo (String pesquisacampo) { this.pesquisacampo =
pesquisacampo.toUpperCase();}
public String getPesquisacampo() {return this.pesquisacampo;}
getPesquisacampo()
}
// metedo que carrega a query
public List getNome() throws SQLException {
String executarSQL = "select * from vista_arquivo_geral where
nome_adverso like(’"+getPesquisacampo()+"%’) order by nome_adverso";
Connection conn = ConexaoOra.obterConexao();
stm = ConexaoOra.stm;
rs = stm.executeQuery(executarSQL);
List list = new ArrayList();
GuestJP guestjp = new GuestJP();
while (rs.next()) {
guestjp.setNomeadverso(rs.getString("nome_adverso"));
guestjp.setIdregistro(rs.getString("id_reg"));
System.out.println(guestjp.getNomeadverso() +" - "+
guestjp.getIdregistro() ) ;
}
list.add(guestjp);
rs.close();
stm.close();
return list;
}
}
******** Testar.java - Testar retorno
import java.sql.SQLException;
import java.util.*;
public class Testar {
public static void main(String[] args) {
JanelaPrincipal jp = new JanelaPrincipal();
jp.setPesquisacampo(“CARLOS”);
try{
List guestListOpcoes = jp.getNome();
Iterator guestListIterator = guestListOpcoes.iterator();
GuestJP guestjp;
while ( guestListIterator.hasNext() )
{
guestjp = ( GuestJP ) guestListIterator.next();
System.out.println(guestjp.getNomeadverso() +" - "+
guestjp.getIdregistro() ) ; /// AQUI RETORNA SOMENTE O ULTIMO REGISTRO
}
} catch (SQLException e) { System.out.println("Mensagem do sistema:
"+e.getMessage()); }
}
}
********* pagina JSP
<%@page isELIgnored=“false”%>
<%@ taglib uri=“http://java.sun.com/jstl/core” prefix=“c” %>
<%@taglib uri=“http://java.sun.com/jstl/fmt” prefix=“fmt”%>
<%@taglib uri=“http://java.sun.com/jstl/sql” prefix=“sql”%>
<jsp:useBean id=“jp” class=“br.com.conpro.web.JanelaPrincipal” />
<c:set var=“Lista” value="${jp.nome}" scope=“session” />
<c:forEach var=“obj” items="${Lista}">
<tr>
<td width=“100%”>:<c:out
value="${obj.nomeadverso}<br />" escapeXml=“false” /> </td>
</tr>
</c:forEach>