Recuperando 2 objetos num mesmo loop através da JSTL. (dúvida!)

9 respostas
E

Essa é a minha página…
o código está funcionando direitinho.
Porém preciso exibir também o nome da Instancia que é um objeto relacionado dentro da Biblioteca:

=====================

<jsp:useBean id=“dao1” class=“modelo.BibliotecaDAO” scope=“session”/>

<c:forEach var=“biblioteca” items="${dao1.lista}">

${biblioteca.codigoBiblioteca}

${biblioteca.nomeBiblioteca}

${biblioteca.  ???  }    [color=red] ((aqui quero mostrar  o nome instância relacionada!! - sem esta linha o código funciona))[/color]

</c:forEach>

================================
[color=blue]
public class Biblioteca {

private int codigoBiblioteca;
private String nomeBiblioteca;
private Instancia instancia;

…[/color]

================================
[color=blue]
public class Instancia {

private int codigoInstancia;
private String nomeInstancia;

…[/color]

9 Respostas

jpjcjbr

ja tentou : ${biblioteca.instancia.nomeInstancia} ???

=]

E

Já.

[color=blue]org.apache.jasper.JasperException: An exception occurred processing JSP page /instancia.jsp at line 54

51: ${biblioteca.nomeBiblioteca}
52:
53:


54: ${biblioteca.instancia.nomeInstancia}
55:
56: </c:forEach>
57: [/color]
A

Dentro de bibliotecaDAo tem uma instancia do objeto que vc quer?

E

Esse é o BibliotecaDAO


public class BibliotecaDAO {

public List<Biblioteca> getLista(){
	
	List<Biblioteca> bibliotecas = new ArrayList<Biblioteca>();
	try{
		//sql
		String sql = "SELECT * FROM \"RIMD\".biblioteca";
		
		Connection con = Conexao.conectar(null);
		PreparedStatement st = con.prepareStatement(sql);
		ResultSet rs = st.executeQuery();
		InstanciaDAO dao = new InstanciaDAO();
		
		//loop
		while (rs.next()) {
			[color=red]Instancia instancia = dao.buscarInstancia(rs.getInt("intc_cd_instancia"));[/color]
			Biblioteca biblioteca = new Biblioteca(
					rs.getInt("bibl_cd_codigo"),
					rs.getString("bibl_nm_nome"),
					[color=red]instancia[/color]
					);
			bibliotecas.add(biblioteca);
		}
		//fechando conexoes
		rs.close();
		st.close();
		con.close();
		
	}
	catch(Exception e){
		System.out.println(e.getMessage());
		return null;
	}
	return bibliotecas;
}

}

A

Pq vc naum tenta assim

Instancia instancia = new Instancia();
instancia.setId(rs.getInt("a_instancia_desejada");

dai no construtor da biblioteca vc recupera assim

Biblioteca biblioteca = new Biblioteca(
rs.getInt("bibl_cd_codigo"),
rs.getString("bibl_nm_nome"),
instancia.getId
);

mas ai vc teria que mudar o construtor, mas se vc quiser pode deixar da forma como esta!!! sem recuperar o id!!
espero ter ajudado

psandrelli

Tenta isso:

<td><c:out value="${biblioteca.codigoBiblioteca}" /></td>
E

Está faltando, é o nome da instância relacionada.

${biblioteca.codigoBiblioteca}

${biblioteca.nomeBiblioteca}

${biblioteca. ??? } [color=red]((aqui quero mostrar o nome instância relacionada!! )) [/color]
E

Galera ainda não consegui!!! Help!!!

psandrelli

edimario, entendi errado o que vc precisa. Vou ver se consigo te ajudar.

Criado 22 de janeiro de 2008
Ultima resposta 23 de jan. de 2008
Respostas 9
Participantes 4