Lista esta repetindo atributos

0 respostas
java
F

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




<ui:repeat var=“a” value="#{frequenciaService.presencas}">

</ui:repeat>

<ui:repeat var=“a” value="#{frequenciaService.frequencias}">


<ui:repeat value="#{a.presencas}" var=“p”>

</ui:repeat>

</ui:repeat>
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

Criado 17 de março de 2016
Respostas 0
Participantes 1