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.
-Dúvida JSF - Recuperar um lista do BD e exibir como opcoes de um selectOneMenu
H
6 Respostas
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.
H
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)
L
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
L
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
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.
veio, você tentou criar um conversor?acho que seria uma melhor solução para o seu caso.
Criado 29 de junho de 2011
Ultima resposta 29 de jun. de 2011
Respostas 6
Participantes 4
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Casa do Codigo Desmistificando WebAssembly: Alta performance,... Por Raphael Amorim — Casa do Codigo