Criei uma lista de Frequencia qndo chamo ela no XHTML ela repete alguns alunos, via console os dados são carregados normalmente.
`BBCODE’
@Named
@javax.faces.view.ViewScoped
public class FrequenciaService implements Serializable {
private static final long serialVersionUID = 1L;
// private List<Frequencia> listaEstado = null;
@Inject
private TurmaDAO TurmaDao;
private Turma turma = new Turma();
private List<Frequencia> frequencias = new ArrayList<Frequencia>();
private Frequencia alunoFrequencia = new Frequencia();
List<Presenca> presencas = new ArrayList<Presenca>();
private Presenca presenca = new Presenca();
private Frequencia frequencia = new Frequencia();
public TurmaDAO getTurmaDao() {
return TurmaDao;
}
public void setTurmaDao(TurmaDAO turmaDao) {
TurmaDao = turmaDao;
}
public Turma getTurma() {
return turma;
}
public void setTurma(Turma turma) {
this.turma = turma;
}
@Transactional
public void preparaFrenquencia(Turma turma) {
System.out.println("Aulas da Turma " + turma.getNome() + " - Nº de Aulas - " + turma.getAulas().size());
System.out.println("Total de Alunos: " + turma.getAlunos().size());
for (int i = 0; i < turma.getAlunos().size(); i++) {
frequencia = new Frequencia();
presencas = new ArrayList<Presenca>();
frequencia.setAluno(turma.getAlunos().get(i).getNome());
frequencias.add(frequencia);
for (int t = 0; t < turma.getAulas().size(); t++) {
presenca = new Presenca();
for (int j = 0; j < turma.getAulas().get(t).getAutoAvaliacoes().size(); j++) {
for (int j2 = 0; j2 < turma.getAlunos().get(i).getAutoAvaliacoes().size(); j2++) {
if (turma.getAlunos().get(i).getAutoAvaliacoes().get(j2).getId()
== turma.getAulas().get(t).getAutoAvaliacoes().get(j).getId()) {
presenca.setDataPresenca(turma.getAulas().get(t).getDataAula());
presenca.setAula("P");
}
}
if(presenca.getAula() == null){
presenca.setDataPresenca(turma.getAulas().get(t).getDataAula());
presenca.setAula("F");
}
}
presencas.add(presenca);
}
frequencia.setPresencas(presencas);
}
}
public List<Frequencia> getFrequencias() {
System.out.println("Requisitou o GET");
for (int i = 0; i < frequencias.size(); i++) {
System.out.println(i + " "+ frequencias.get(i).getAluno());
}
return this.frequencias;
}
public void setFrequencias(List<Frequencia> frequencias) {
this.frequencias = frequencias;
}
public Frequencia getAlunoFrequencia() {
return alunoFrequencia;
}
public void setAlunoFrequencia(Frequencia alunoFrequencia) {
this.alunoFrequencia = alunoFrequencia;
}
public List<Presenca> getPresencas() {
return presencas;
}
public void setPresencas(List<Presenca> presencas) {
this.presencas = presencas;
}
public Presenca getPresenca() {
return presenca;
}
public void setPresenca(Presenca presenca) {
this.presenca = presenca;
}
public Frequencia getFrequencia() {
return frequencia;
}
public void setFrequencia(Frequencia frequencia) {
this.frequencia = frequencia;
}
@Transactional
public void imprimeFrequencia() {
preparaFrenquencia(turma);
for (int i = 0; i < frequencias.size(); i++) {
System.out.print(frequencias.get(i).getAluno());
for (int j = 0; j < frequencias.get(i).getPresencas().size(); j++) {
System.out.print(" | "+frequencias.get(i).getPresencas().get(j).getAula());
}
System.out.println("");
}
}
@Transactional
public void imprimeLista() {
for (int i = 0; i < frequencias.size(); i++) {
System.out.print(frequencias.get(i).getAluno());
for (int j = 0; j < frequencias.get(i).getPresencas().size(); j++) {
System.out.print(" | "+frequencias.get(i).getPresencas().get(j).getAula());
}
System.out.println("");
}
}
@PostConstruct
public void init() {
}
}
‘XHML’
`HTML
| Aluno |
<p:outputLabel value="#{a.dataPresenca}"> <f:convertDateTime pattern=“dd/MM”></f:convertDateTime> </p:outputLabel> |
|
<p:outputLabel value="#{a.aluno}"></p:outputLabel> |
<p:outputLabel value="#{p.aula}" /> |
Executei o metodo via Console e o resultado é mostrado corretamente
Aulas da Turma JAVA BASICO - Nº de Aulas - 3
Total de Alunos: 4
Rafael | P | P | P
FRANN SOUZA | P | F | P
DAVI GOMES | F | F | F
KAIO | F | F | F