UISelectItems

3 respostas
L

Estou tentando popular um selectBox, os outros estão funcionando, este em especial não está.

private SelectItem[] disciplinas;
private SelectItem[] polos;

ArrayList<Disciplina> ld;
ArrayList<Polo> lp;

atualizaDisciplinas() - Funciona!

if (tipo == 1) {
				// System.out.println(curso);

				int codCurso = Integer.parseInt(curso);
				cur.setCodCurso(codCurso);
				ld = DBData.getDisciplinasDoCursoEmAvaliacao(pes, cur);

				disciplinas = new SelectItem[ld.size() + 1];
				int j = 0;
				disciplinas[j++] = new SelectItem("s", "Selecione a Disciplina");
				for (Disciplina disciplina : ld) {
					disciplinas[j++] = new SelectItem(disciplina.getCodigo(),
							disciplina.getNome());
				}
				disciplina = "s";
			}

atualizaPolos() - Eis o problema. O método executa normalmente e popula o array, mas o jsf nao encontra.

if (tipo == 2) {
				System.out.println("Inicializa Polos");

				int codCurso = Integer.parseInt(curso);
				cur.setCodCurso(codCurso);
				lp = DBData.getPolo(pes, cur);

				polos = new SelectItem[lp.size() + 1];
				int j = 0;
				polos[j++] = new SelectItem("s", "Selecione o Pólo");
				for (Polo polo : lp) {
					polos[j++] = new SelectItem(polo.getCodigo(), polo
							.getNome());
				}
				for (int i = 0; i < polos.length; i++) {
					System.out.print(polos[i].getValue() + " " + polos[i].getLabel());
				}

JSF - listagem.disciplinas funciona corretamente, e está feito exatamente do mesmo jeito que polos

<h:selectOneMenu value="#{listagem.disciplina}" id="comboDisciplinas">
				<f:selectItems value="#{listagem.disciplinas}" />
				<a4j:support event="onchange" action="#{listagem.atualizaPolo}"
					reRender="comboPolos"></a4j:support>
			</h:selectOneMenu>

			
			<h:selectOneMenu value="#{listagem.polo}" id="comboPolos">
				<f:selectItems value="#{listagem.polos}" />
			</h:selectOneMenu>

Erro
Expected a child component type of UISelectItem/UISelectItems for component type javax.faces.SelectOne(comboPolos). Found null.

Alguém sabe porque o JSF nao consegue pegar?

Grato

3 Respostas

L

Alguém?

L

Provavelmento o seu método getPolos() tá retornando null ou tem algum elemento do seu vetor de retorno que está nulo

L

Eu mandei imprimir o tamanho e também cada um dos itens que retornava, e o retorno está correto.

Criado 1 de setembro de 2009
Ultima resposta 3 de set. de 2009
Respostas 3
Participantes 2