Listas

0 respostas
simberg

Quero colocar uma lista dentro da outra no DAO e exibi-la em jsp.

No DAO fiz assim:

public List<Contato>getLista_cc() throws SQLException{
		PreparedStatement stmt= this.connection.prepareStatement("SELECT local.descricao, defesa.numero, defesa.data, defesa.horario, candidatos.nome_aluno, candidatos.titulo, candidatos.tipo, professores.nome_professor FROM local INNER JOIN (professores INNER JOIN (candidatos INNER JOIN defesa ON candidatos.idc = defesa.candidato) ON professores.idp = candidatos.orientador) ON local.idl = defesa.local order by defesa.data;");
		ResultSet rs=stmt.executeQuery();
		ArrayList<Contato>list_cc = new ArrayList<Contato>();
		
		while(rs.next()){
				
				Contato c1=new Contato();
				numerox=rs.getInt("numero");                       //vou usar esse valor na lista abaixo
				c1.setNumero(rs.getInt("numero"));	
				c1.setData(rs.getDate("data"));
				c1.setHorario(rs.getTime("horario"));
				c1.setNome_aluno(rs.getString("nome_aluno"));
				c1.setTitulo(rs.getString("titulo"));
				c1.setTipo(rs.getBoolean("tipo"));
				c1.setNome_professor(rs.getString("nome_professor"));
				c1.setDescricao(rs.getString("descricao"));
				
// Outra lista usando o valor de numerox da lista acima

				PreparedStatement stmt2= this.connection.prepareStatement("SELECT subbanca.defesa, subbanca.numero_professor, professores.nome_professor from professores inner join(defesa inner join subbanca on subbanca.defesa=defesa.numero)on professores.idp = subbanca.numero_professor where subbanca.defesa="+numerox);
				ResultSet rs2=stmt2.executeQuery();
				ArrayList<Contato>list_cc2= new ArrayList<Contato>();
				while(rs2.next()){
					Contato c2= new Contato();
					c2.setNumero_professor(rs2.getInt("numero_professor"));
					list_cc2.add(c2);
				}
				rs2.close();
				stmt2.close();
				
				
				list_cc.add(c1);
				list_cc.addAll(list_cc2);   //incluindo uma lista a outra
				}	
		rs.close();
		stmt.close();
		return list_cc;
	
	}

No jsp com taglibs.

<table width="780" border="1">

<jsp:useBean id="dao" class="br.direito.defesas.dao.ContatoDAO" />

       <c:forEach var="contato" items="${dao.lista_cc}">
<tr bgcolor="#990000">
	<TD>
		<font size="2" color="#FFFFFF"><fmt:formatDate value="${contato.data}" pattern="dd-MM-yyyy" /> </font>
	</TD>
	<td>
		<font size="2" color="#FFFFFF"><fmt:formatDate value="${contato.horario}" pattern="HH:mm" /></font>
	</td>
	<td>
		<font size="2" color="#FFFFFF">${contato.descricao}</font>
	</td>
	<td>
		<script language="JavaScript">
			if(${contato.tipo}==true){
			    document.write("<font size='2' color='#FFFFFF'>Doutorado</font>");
			}
			else{
				document.write("<font size='2'  color='#FFFFFF'>Mestrado</font>");
			} 
		</script>
	</td>
</tr>
<tr>
	<td colspan="2">
		<font size='2'>Nome do Aluno</font>
	</td>
	<td>
		<font size='2'>Orientador</font>
	</td>
	<td>
		<font size='2'>Título</font>
	</td>
</tr>
<tr>
	<TD colspan="2">	
       	<font size="2">${contato.nome_aluno}</font>
    </td>
    <td>
    	<font size="2">${contato.nome_professor}</font>
    </td>   	
	<td>
    	<font size="2">${contato.titulo}</font>
    </td>
    <td>
    </td>  
</tr>
<tr>
	<td colspan="3">
		Banca
		${contato.numero}
	</td>
	<td>
 
	${contato.numero_professor}

	</td>
</tr>
</c:forEach> 
    
</table>

Gostaria que a exibição ficasse assim:


30-07-2008 12:00 Sala da Congregação Doutorado
Nome do Aluno Orientador Título
Amanda Croissant Alberto do Amaral Júnior Aspectos jurídicos da controvérsia do tratado de Lichinstein
Banca 61 58 - 1 -3 - 6 (números dos professores)

E assim por diante para as outras bancas.

mas, fica assim:


30-07-2008 12:00 Sala da Congregação Doutorado
Nome do Aluno Orientador Título
Amanda Croissant Alberto do Amaral Júnior Aspectos jurídicos da controvérsia do tratado de Lichinstein
Banca 61

Mestrado

Nome do Aluno Orientador Título

Banca 58
Mestrado
Nome do Aluno Orientador Título

Banca 1
Mestrado
Nome do Aluno Orientador Título

Banca 3
Mestrado
Nome do Aluno Orientador Título

Banca 6

Fica se repetindo o número do professor corretamente para a banca, mas não dentro da linha que quero.

Criado 14 de outubro de 2008
Respostas 0
Participantes 1