Obrigado von.juliano,
Tentei adaptar suas idéias ao meu trabalho.
O exemplo que dei foi para facilitar o entendimento. Apesar do sistema estar ficando interessante, ainda estou engatinhando no Java, mas estou fazendo tudo em MVC e procurando seguir os patterns.
Na verdade não são clientes e vendedores e sim, Banca, candidatos, subbanca (onde aparecem os professores que estão na banca). Mas a idéia é a mesma.
Se o candidato vai defender mestrado, são 3 professores na banca, um o orientador e mais dois professores, se for doutorado, além do orientador, mais 4 professores.
Fiz o jsp com jstl, fiz as servlets e o DAO.
No DAO fiz as listas.
public ListgetLista_cc() throws SQLException{
PreparedStatement stmt= this.connection.prepareStatement(“SELECT …”);
ResultSet rs=stmt.executeQuery();
ArrayListlist_cc = new ArrayList();
ContatoDAO dao;
while(rs.next()){
Contato c1=new Contato();
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")); // esse é o Orientador.
c1.setDescricao(rs.getString("descricao"));
// aqui abaixo estou pegando o número da banca e jogando mais abaixo
try{
dao=new ContatoDAO();
ContatoDAO.setnumero(rs.getInt("numero"));
}catch(SQLException e){
e.printStackTrace();
}
list_cc.add(c1);
}
rs.close();
stmt.close();
return list_cc;
}
// aqui recebe o número da banca.
public static void setnumero(Integer numero)throws SQLException{
numerox=numero;
System.out.println(numerox);
}
// aqui abaixo fiz a lista dos orientadores das bancas, pegando na cláusula where o “numerox” número da banca, para associar a tabela subbanca que tem os orientadores.
public List<Contato>getLista_ccp() throws SQLException{
PreparedStatement stmt= this.connection.prepareStatement("SELECT ....... where subbanca.defesa="+numerox);
ResultSet rs=stmt.executeQuery();
ArrayList<Contato>list_ccp = new ArrayList<Contato>();
while(rs.next()){
Contato c1=new Contato();
c1.setNome_professor(rs.getString("nome_professor"));
c1.setInstituicao(rs.getInt("instituicao"));
c1.setIdp(rs.getInt("idp"));
list_ccp.add(c1);
}
rs.close();
stmt.close();
return list_ccp;
}
No jsp:
O nome dos orientadores se repetem de forma igual, não dando distinção para a banca certa, ou seja todos os orientadores aparecem iguais para todas as bancas.
Não aparece assim: banca1 - orientadores da banca1
banca2 -orientadores da banca2
aparece:
banca 1 -todos os orientadores de todas as bancas
banca2 - todos os orientadores de todas as bancas
Será que há alguma forma de arrumar isso, ou terei que refazer todo o procedimento?
<jsp:useBean id=“dao” class=“br.direito.defesas.dao.ContatoDAO” />
<c:forEach var="contato" items="${dao.lista_cc}">
|
|
<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>
|
Nome do Aluno
|
<td>
<font size='2'>Orientador</font>
</td>
<td>
<font size='2'>Título</font>
</td>
<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>
|
Bancax
|
[color=red]
${contato.nome_professor}
[/color]
|
Obrigado, desculpa a linguiça.