Bom dia pessoal!
Estou tendo um problema que talvez seja simples, mas não sei como resolve-lo…
Estou criando um sistema de gerenciamento de alunos. Quando se entra com a identificação do aluno, carrega o nome dele e as matrículas (que seria cada ano que ele estudou) via ajax.
Ao digitar a identificação do aluno o carrega o nome no inputText e carrega no list as matrículas (verifiquei debugando), mas o componente select some :shock: !
Minha página:
<p:panel header="Aluno">
<h:panelGrid id="gridAluno" columns="4">
<h:outputLabel for="rm" value="RM: *" />
<p:inputText id="rm" value="#{notaController.aluno.rm}" size="12" >
<p:ajax event="keyup" update="nome,selectMatricula" listener="#{notaController.buscaAluno}" />
</p:inputText>
<h:outputLabel for="nome" value="Nome: *" />
<p:inputText id="nome" value="#{notaController.aluno.nome}" size="40" disabled="true"/>
<h:outputLabel for="status" value="Status:" />
<p:selectOneMenu value="#{notaController.nota.matricula}" converter="converter" id="selectMatricula">
<f:selectItem itemLabel="Selecione..." itemValue="" />
<f:selectItems value="#{notaController.matriculas}"/>
</p:selectOneMenu>
</h:panelGrid>
</p:panel>
Meu managerBean:
public class NotaController {
private Aluno aluno;
private List<Matricula> matriculas;
private Nota nota;
public NotaController() {
aluno = new Aluno();
matriculas = new ArrayList<Matricula>(1);
nota = new Nota();
}
...
public void buscaAluno(){
Aluno alunoBusca = AlunoController.findByRm(this.aluno.getRm());
if(alunoBusca != null){
this.aluno = alunoBusca;
carregaMatriculas(this.aluno.getId());
}else{
Aluno novoAluno = new Aluno();
novoAluno.setRm(aluno.getRm());
this.aluno = novoAluno;
this.matriculas = new ArrayList<Matricula>(1);
}
}
public void carregaMatriculas(int idAluno){
matriculas = MatriculaController.getMatriculasByAluno(idAluno);
}
...
}
Antes de entrar com o valor:

Depois:

Na segunda imagem é possível ver o resultado do select, ele some e fica apenas um traço…
alguém saberia como resolver o meu problema ou o que fiz de errado?
Obrigado!