Eu tenho uma tabela no banco de dados como o nome aeroporto,
para cadastrar uma companhia aérea eu preciso de exibir
os nomes dos aeroportos assim vou saber em que aeroporto
essas companhias trabalham para cadastrar.
O problema esta em recuperar os nomes dos aeroportos para exibir
para o cliente e mostrá-los em um selectOneMenu.
O meu método que retorna uma lista com o nome
dos aeroportos já está pronto mais não sei como
a partir dessa lista criar o selectOneMenu.
Camarada, eu tentei de todas as formas fazer isto usando diretamente List, porém, o jsf sempre jogava como objeto.
Então, radicalizei, converti as Lists em Arrays de String e colocava apenas o nome.
Mesmo convertendo para um array de strings eu ainda não saberia como exibi-las em
um selectOneMenu, não tem como dar uma dica de como fazer isso? 8)
um exemplo de criacao de selectOnemenu com a descricao dos meses do ano:
public List<SelectItem> getListaMes() {
String[] names = new DateFormatSymbols().getMonths();
months = new LinkedHashMap<String, Long>();
listaMes = new ArrayList<SelectItem>();
for (int i = 0; i < 12; i++) {
months.put(names[i], new Long(i + 1));
}
for (String m : months.keySet()) {
listaMes.add(new SelectItem(months.get(m), m));
}
return listaMes;
}
Se vc for utilizar objetos de dominio ai vai precisar de um conversor
ha esqueci , declare uma variavel como :
private List<SelectItem> listaMes;
o get dela esta no post acima,ai na pagina fica assim:
<h:selectOneMenu
id="selectMes"
value="#{seuBean.propriedade}">
<f:selectItems value="#{seuBean.listaMes}" />
</h:selectOneMenu>
String[] arrayDeString = new String[listaDeObjetos.size()];
int x = 0;
for(Objeto o : listaDeObjetos){
arrayDeString[x] = o.getNome();
}
e no xhtml
<h:selectOneMenu value="#{meuBean.selecionado}" id="sel">
<f:selectItems value="#{meuBean.arrayDeString}" var="arr">
<f:selectItem itemValue="#{arr}" itemLabel="#{arr}"/>
</f:selectItems>
</h:selectOneMenu>
Algo assim
[quote=drsmachado]Camarada, eu tentei de todas as formas fazer isto usando diretamente List, porém, o jsf sempre jogava como objeto.
Então, radicalizei, converti as Lists em Arrays de String e colocava apenas o nome.[/quote]
veio, você tentou criar um conversor?acho que seria uma melhor solução para o seu caso.