3
respostas

selectManyListbox não exibe nome de autores

selectManyListbox não exibe nomes de autores, mas todo conteúdo do array retornado do adminLivrosBean.autores.

No form.xhtml, o código está conforme a explicação do instrutor.

<h:outputLabel value="Autores" />
        <h:selectManyListbox>
            <f:selectItems 
                value="#{adminLivrosBean.autores}" 
                var="autor"
                ItemValue="#{autor.id}"
                ItemLabel="#{autor.nome}" />
</h:selectManyListbox>

No entanto, eis o resultado: Autor[id=1, nome=Paulo Silveira] Autor[id=2, nome=Ségio Lopes]

Alguém tem ideia do que ocorre?

3 respostas

Olha, vou ser sincero, não vi o erro.. Você está referenciando os métodos como eu acho que deveria ser. O texto impresso, remete ao toString do autor.... chegou a tentar debugar e verse o getNome realmente está sendo chamado? Coloca um breakpoint no toString também... ta dando alguma confusão aí no meio do caminho que não estamos vendo.

Sim, remete ao toString e quando o removo mostra o endereço de memória. No adminLivrosBean, o getNome funciona normalmente. Eis o método que é ligado ao form.xhtml

public List<Autor> getAutores() {
return Arrays.asList(new Autor(1,"Paulo Silveira"), new Autor(2,"Sérgio Lopes"));
    //return autorService.listaTodos();
}

Presumo ser algo ligado ao componente selectManyListbox. Resta-me agora utilizar outro componente.

ItemValue e ItemLabel devem ser minúsculos itemValue e itemLabel.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software