Pegando objeto de 1 ArrayList de Objetos (não esotu conseguindo)

Bom dia pessoALL, sou novato aqui e desculpe-me se eu estiver postando na área errada.

Fiz este Dao

package model;

import java.sql.*; 
import java.util.*;

import util.FabricaConexao;

public class MenuDao {	
	private static Connection con;
	public static ArrayList <Menu> locMenu(String codmenu) throws SQLException {
		//Definindo as variaveis do DAO
		ArrayList <Menu> list = new ArrayList();
        	Statement stm;
	        ResultSet rs;
		String sql;

		//Conectando à base de dados
		Connection con = FabricaConexao.getConTST();
    
		//Definindo a query a ser executada
		sql = "SELECT AI8_PORTAL, AI8_CODMNU, AI8_TEXTO, AI8_WEBSRV, AI8_ROTINA FROM AI8010 WHERE AI8_PORTAL = '" + codmenu 
			  + "' AND AI8_CODPAI = '      ' AND D_E_L_E_T_ <> '*'";
		// executando a query
        	stm = con.createStatement();
		rs = stm.executeQuery(sql);
		while (rs.next()) {
			Menu menuList = new Menu();
		        //estanciando o objeto Usuario
			menuList.setMnupor(rs.getString(1));
	        	menuList.setMnucod(rs.getString(2));
		        menuList.setMnutxt(rs.getString(3));
	        	menuList.setMnutxt(rs.getString(4));
		        menuList.setMnutxt(rs.getString(5));

		        list.add(menuList);
		}
		for(int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i).getMnutxt());
		}
		con.close();
	        return list;
	}
}

Estou tentando agora pegar estes dados que coloco no Arraylist list


<%@ page import="model.*" %>
<%@ page import="java.util.*" %>
<%
	MenuDao menu = new MenuDao();
	ArrayList list = menu.locMenu("JREPRE");
	for(Iterator<Menu> imenu = list.iterator(); imenu.hasNext(); ) {
		%>
		<li><a href="#"> <% out.print(imenu.next().getMnutxt()); %> </a></li>
		<% 
	}
%>

ai que está o problema, não retorna nada, alguém poderia me ajudar ?

Desde já agradeço

Christian

cara, seu select está retornando dados?

Voce tem que fazer assim…

out.print(((Menu) imenu.next().)getMnutxt());

[]'s

Segue o resultado do menuDao nesta parte a baixo com o sysout.

	while (rs.next()) {
		Menu menuList = new Menu();
	        //estanciando o objeto Usuario
		menuList.setMnupor(rs.getString(1));
	        menuList.setMnucod(rs.getString(2));
	        menuList.setMnutxt(rs.getString(3));
	        menuList.setMnutxt(rs.getString(4));
	        menuList.setMnutxt(rs.getString(5));
	        
	        System.out.println(rs.getString(1));
	        System.out.println(rs.getString(2));
	        System.out.println(rs.getString(3));
	        System.out.println(rs.getString(4));
	        System.out.println(rs.getString(5));
	        list.add(menuList);
	}

JREPRE
000104
Crm
ACSP

JREPRE
000108
Pedidos
MTSELLER

JREPRE
000112
Inclusoes
ACAA730

JREPRE
000119
Contas a Pagar
MTCURRENCY

JREPRE
000125
Consultas
MTSELLER

JREPRE
000139
Documentos
QDODOCUMENTS

JREPRE
000143
Manutencao
JPALTERAREPRESENTANTE

cara,nao acho que ele precise fazer isso, uma vez que o Iterator está tipado com a classe dele…

[quote=alberto_ribeiro]Voce tem que fazer assim…

out.print(((Menu) imenu.next().)getMnutxt());

[]'s[/quote]

	<div id="menu">
		<ul>

			<%@ page import="model.*" %>
			<%@ page import="java.util.*" %>
			<%
				MenuDao menu = new MenuDao();
				ArrayList list = menu.locMenu("JREPRE");
				
				for(Iterator<Menu> imenu = list.iterator(); imenu.hasNext(); ) {
				
			%>

        	<li><a href="#"> <% out.print(((Menu) imenu.next()).getMnutxt()); %> </a></li>
			<% 
				}
			%>

        </ul>
</div>

Alterei mas mesmo assim não trouxe os dados :confused:

velho,a meu ver nao tem erro no seu codigo…verifica qual é o size do arraylist que tá retornando pra sua pagina jsp

Tamanho 7

olha antes ele apresentava o conteúdo fisico do objeto (localização de memoria)

agora só aparece os 7 espaços, porém sem conteúdo.

Bom agora eu troquei o pedido do get

e saiu isso

000104 000108 000112 000119 000125 000139 000143

ou seja

em uns get não está aparecendo nada e somente neste get “getMnucod()” que está mostrando algo, abaixo segue meu menu.java, será que estou fazendo algo errado ?

package model;
import java.util.*;
public class Menu {
	private String mnupor;
	private String mnucod;
	private String mnutxt;
	private String mnuweb;
	private String mnurot;

	public Menu() 	{
		this.mnupor  = null;
		this.mnucod  = null;
		this.mnutxt  = null;
		this.mnuweb  = null;
		this.mnurot  = null;
	}

	public String getMnupor() {
		return mnupor;
	}

	public void setMnupor(String mnupor) {
		this.mnupor = mnupor;
	}

	public String getMnucod() {
		return mnucod;
	}

	public void setMnucod(String mnucod) {
		this.mnucod = mnucod;
	}

	public String getMnutxt() {
		return mnutxt;
	}

	public void setMnutxt(String mnutxt) {
		this.mnutxt = mnutxt;
	}

	public String getMnuweb() {
		return mnuweb;
	}

	public void setMnuweb(String mnuweb) {
		this.mnuweb = mnuweb;
	}

	public String getMnurot() {
		return mnurot;
	}

	public void setMnurot(String mnurot) {
		this.mnurot = mnurot;
	}

}

cara,mas que droga…nao está errado…voce tentou tirar o out.print?

ah…perdao…no retorno do seu result set voce está alimentando o atributo Mnutxt mais de uma vez, isso está correto?

caraca, vc foi no ponto chave da questão, isso mesmo, isso que dá eu ficar dando ctrl+c ctrl+v

Obrigado, agora funcionou =) e desculpe a amolação stress no trabalho da nisso, coisas que nem se percebe :confused:

Christian

por nada,relaxa…só desculpe eu nao ter visto antes,rs :wink: