Populando um <f:selectItems />

6 respostas
robson_vs

Estou tentando fazer um metodo para pupular um <f:selectItems /> mais estou levando uma surra pois retornando uma lista mais ñ estou conseguindo usala para popular o mesmo alguem ja tem idéia de como eu faço isso? ou um modelo, exemplo ou algo do genero?

Valeu a atenção

6 Respostas

belmonte

olá. Se entendi o q vc está procurando, acho q isso pode ajudá-lo:

<html><head><title>Prioridade</title>

</head><body>

<%@ page import='java.util.ArrayList' %>
<%@ page import='java.util.Iterator' %>
<%
regraDeNegocio.PrioridadeVO vo = new regraDeNegocio.PrioridadeVO();
regraDeNegocio.Prioridade jspPrioridade = new regraDeNegocio.Prioridade();
ArrayList jspColecaoVOs = new ArrayList();
jspColecaoVOs = jspPrioridade.consultarTodasPrioridades();
Iterator it = jspColecaoVOs.iterator();
%>

...

  <tr>
    <td height="30"><div align="right">Selecionar</div></td>
    <td height="2"><select name="select1" size="1" id="select1" onChange="carregaPrioridade()">

<%-- begin: preenchimento do combo (html) --%>

<%
while (it.hasNext()) {
  vo = (regraDeNegocio.PrioridadeVO) it.next();
%>
	<option value="<%=vo.getPrioridade()%>" ><%=vo.getPrioridade()%></option>
<%
}
%>

<%-- end: preenchimento do combo (html) --%>

...

</body></html>

consultarTodasPrioridades() é um método q retorna uma coleção de objetos (q no meu exemplo é um cadastro de prioridades) para o preenchimento do select.

abraço,

urubatan

falando sério …
se alguem programar desta maneira, cheio de scriptlets na minha empresa ta fora na mesma hora …

e ele estava perguntando sobre o f:selectItens do JSF …

o valor do f:selectItems precisa ser ou uma lista de SelectItem ou então um Map com chave=valor :smiley:

robson_vs

é para o jsp funciona mais eu estou usando jsf???

mais valeu vou ver a possibilidade de subistituir esta tag

robson_vs

então to consegui popular a lista mais na hora de salvar ta dando erro de converssão acho q pq tive q converter o id para toString acho q tenho q criar um novo metodo para convertelo novamente

robson_vs
A

Bem, eu tive o mesmo problema mas já consegui resolver.
Realmente tem q usar um Map ou SelectItem pra funcionar.
Eu usei uma TreeMap(que já deixa em ordem :D), daí basta popular ela
como abaixo:

TreeMap<String, String> lista = new TreeMap<String, String>();

Daí depois pegue a chave e o valor(ambos String) e use um:

lista.put(chave, valor);

Isso deve ser colocado no método GET de um atributo que retorne uma lista do seu bean.
Ex: Classe BeanPais com uma lista de Estados como atributo … algo do gênero.
Tá feito. Agora no jsf, coloque:

<h:selectOneMenu>
<f:selectItens value="#{BeanPais.estados} />
</h:selectOneMenu>

Fica q é uma beleza eheeheh
Espero que ajude.

PS: Código no JSP??? argh!!! ahuahaua Mas já passei por isso tbm eheeh
Evolua para camadas!

Criado 11 de setembro de 2006
Ultima resposta 26 de set. de 2007
Respostas 6
Participantes 4