Preencher um selectOneListBox [RESOLVIDO]

3 respostas
T

Pessoal, to tentando preencher um selectOneListBox da seguinte forma:
esse é a parte a qual se refere o xhtml.
<h:form> <table><tr> <td>Procurar por:</td> <td><h:selectOneListbox id="String" style="width: 200px" size="1" value="#{controleHistorico.aux}"> <f:selectItems value="#{controleHistorico.selectItems}" /> </h:selectOneListbox><br /> </td> </tr></table> </h:form>

dai o controleHistorico.aux é uma string … e o código do selectItems no controle é:
@SuppressWarnings("unchecked") public List getSelectItems(){ List<String> list = new ArrayList<String>(); list.add(funcionario); list.add(produto); list.add(setor); list.add(situacao); list.add(tombo); return list; }

funcionario, produto, setor, situacao e tombo, são todos declarados como string no controle.
ai o erro que ta dando é oseguinte:

[color=red]SEVERE: Error Rendering View[/listaHistorico.xhtml]
java.lang.IllegalArgumentException: Argument Error: An option for component String was not an instance of javax.faces.model.SelectItem. Type found: java.util.ArrayList.
at com.sun.faces.renderkit.RenderKitUtils.getSelectItems[/color]

vcs tem alguma idéia do que seja???
valeuu!!

3 Respostas

cloudx

Seguinte chapa:
o value do Uma única instanciá de SelectItem
Uma coleção de instanciá de SelectItem
Um array de instanciá de SelectItem
Um mapa de instanciá de SelectItem, em que a chave representa o rotulo e o valor, bem o valor

Mas vc esta retornando um array de "String"
preencha o selectItem assim:

#  public List getSelectItems(){  
#         List<SelectItem> list = new ArrayList<SelectItem>();  
#         list.add(new SelectItem("funcionario"));  
#         list.add(new SelectItem("produto")); 
#         list.add(new SelectItem("setor")); 
#         list.add(new SelectItem("situacao")); 
#         list.add(new SelectItem("tombo")); 
#         return list;  
#     }
T

era isso mesmo!
deu certo chapa…
valeu!!

cloudx

De nada.
Agora vc adiciona [RESOLVIDO] no final do título do post, só pro pessoal ficar sabendo que encontramos a solução.

Criado 7 de janeiro de 2010
Ultima resposta 8 de jan. de 2010
Respostas 3
Participantes 2