Dados de 2 Tabelas Diferentes 1 Displaytag [Resolvido]

3 respostas
portugassis

Olá pessoal,

Estou precisando exibir dados de uma tabela de professores, porem além dos dados do professor, quero exibir também o curso que ele da aula, (seria algo semelhante a funcionario/departamento)
Tenho alguns cursos cadastrados, e a tabela de professores está relacionada a tabela de cursos, pelo campo idcurso.

Consegui exibir os dados do professor perfeitamente usando displaytag, os cadastros também estão funcionando perfeitamente.

Porem na tabela de professores não tem o nome do curso, somente o ID, que é o que é exibido na tela quando abro a página.

Gostaria de saber como posso mandar exibir o nome do curso no lugar do ID.

Estou pensando em criar uma View no mysql para fazer isso, mas dessa forma eu teria que criar mais 1 classe no meu projeto só para essa view, fora o DAO então não sei se é a melhor solução. Se alguém souber uma solução melhor gostaria muito da dica.

(obs. não sei trabalhar com hibernate ainda)

Segue abaixo meu código:

Classe Professor:

public class Professor {
	
	private Long idprofessor;
	private String nome;
	private Long idcurso;
	
	//metodos getters e setters aqui...	
}

Classe Curso:

public class Curso {
	
	private Long idcurso;
	private String nome;
	private String descricao;
	
	//metodos getters e setters aqui...	
}

No banco de dados as tabelas estão relacionadas pelo idcurso

Displaytag

<display:table id="professor" name="${dao.lista}" export="true" pagesize="5" class="displaytag">	

  <display:column property="idprofessor" title="ID" class="id" sortable="true"/>
  <display:column property="nome" class="nome" sortable="true"/>  
  <display:column property="idcurso" title="Curso" class="idcurso" sortable="false"/> //o que eu quero é no lugar desse idcurso que vai ser exibido na tela, colocar o nome do curso, porem o nome está em outra tabela.

</display:table>

3 Respostas

alves.Felipe

na sua classe professor, ao invés de usar idCurso, use o objeto Curso.
e no seu select traga o nome do curso…

portugassis

Já tinha até esquecido desse tópico, acabei conseguindo fazer o que eu queria usando c:forEach c:if

Segue abaixo a solução para se alguém precisar.

<display:column property="id" title="ID" class="id" sortable="true"/> <display:column title="Professor" sortable="true"> <c:forEach var="professor" items="${daoProfessor.lista}" varStatus="id"> <c:if test="${professor.id == coordenador.idprofessor}"> ${professor.nome} </c:if> </c:forEach> </display:column> <display:column title="Curso" sortable="true"> <c:forEach var="curso" items="${daoCurso.lista}" varStatus="id"> <c:if test="${curso.id == coordenador.idcurso}"> ${curso.nome} </c:if> </c:forEach> </display:column>

alves.Felipe

Já tinha até esquecido desse tópico, acabei conseguindo fazer o que eu queria usando c:forEach c:if

Segue abaixo a solução para se alguém precisar.


fez com a famosa né!!?!

Criado 28 de março de 2011
Ultima resposta 9 de mai. de 2011
Respostas 3
Participantes 2