<rich:comboBox/> Duvida com valores

9 respostas
L

Ola pessoal estou com uma duvida em relacao ao combobox do richfaces 3.2,
ele nao apresenta as descricoes de um determinado objeto,so apresenta o codigo estou utilizando o mesmo metodo que eu utilizava com o selectOne para popular o msm mas nao funciona alguem ja conseguiu fazer isso?
to tentando assim:

&lt;rich:comboBox value="#{fornecedor.fornecedor.fornecedorid}" 
							 width="80"&gt;
								&lt;f:selectItems id="select" value="#{fornecedor.cidadeids}"/&gt;
							&lt;/rich:comboBox&gt;

e o metodo que o popula

public javax.faces.model.SelectItem[] getCidadeids() {
		   IDaoCidade idao = new DaoCidade();  
	        
	            List &lt;Cidade&gt; l = (List &lt;Cidade&gt;) idao.ListarTodos();
	            SelectItem select[] = new SelectItem[l.size()];
	            int i = 0;
	            for(Cidade x : l) {
	                    select[i++] = new SelectItem(x);
	                }
	                return select;
	       
	    }

com o selectOne funciona,que sera que ta faltado?
abracos.

9 Respostas

Javabuntu

em vez de Array utilize ArrayList e ai atribua dentro dele new SelectItem(valor, Label); ta faltando o label pelo jeito.

L

cara mudei para isto mas ainda nao funcionou:

public  List&lt;SelectItem&gt; getLista() throws Exception {          
          List&lt;SelectItem&gt; lista = new LinkedList&lt;SelectItem&gt;();                   
        
          IDaoCidade idao = new DaoCidade();          
          List&lt;Cidade&gt; resultado = idao.ListarTodos();            
           for(Cidade dados : resultado){            
                      
             SelectItem item = new SelectItem(dados, dados.getCidadenome());      
             lista.add(item);          
                  
          }          
        return lista;

combobox

&lt;rich:comboBox value="#{fornecedor.changeValue}"&gt;
											&lt;f:selectItems value="#{fornecedor.lista}"/&gt;
										&lt;/rich:comboBox&gt;

ele so apresenta o codigo mesmo.

Javabuntu

q coisa hein…

a única coisa diferente que tenho é isto:

lista.add(new  SelectItem(dados, dados.getCidadenome());

eu já crio o objeto dentro da lista mesmo… tenta ai só pra desencargo de consciência… :lol:

Roberley_Cristiano

Estranho hemmm não funcionar … fiz um teste aki e funciona assim tb … sem problemas …

public List getItemsBusca2(){
List lista = new LinkedList();

SelectItem item1 = new SelectItem("Item1","Item11");
   SelectItem item2 = new SelectItem("Item2","Item22");
	
   lista.add(item1);
   lista.add(item2);
   return lista;

}

no jsf

<rich:comboBox selectFirstOnUpdate=“false” defaultLabel=“Campo para busca”>
<f:selectItems value="#{Bean.itemsBusca2}" />
</rich:comboBox>

A

vc pode postar o erro?

felipe.sodre

Meu combo não aprece os valores, acho que os values ta errado.

o que seria

fornecedor.fornecedor.fornecedorid?

<h:outputLabel value="Posição"/>
				<rich:comboBox defaultLabel="Selecione" value="#{templateBean.organization.orgid}">
				<f:selectItems value="#{templateBean.itensOrganizations}"/>
				</rich:comboBox>
public void loadComboOrganizations(){
		try{
			loadOrganizations();
			
			Iterator<Organization> i = listOrganization.iterator();
			
			int index = 0;
			itensOrganizations = new ArrayList<SelectItem>();   
			while(i.hasNext()){			
			itensOrganizations.add(new SelectItem(index, i.next().getOrgid()));
			index++;
			}
			
		}
		catch (Exception e) {
			this.addErrorMessage(e);
		}
	}

public void loadOrganizations(){
		try{
		listOrganization = new OrganizationFacade().getAll();
		}
		catch (Exception e) {
			this.addErrorMessage(e);
		}
	}

alguem poderia me ajudar?

obrigado

C

Cara olhá só, o rhich:combobox não trabalha da mesma forma que o h:selectOneMenu que recebe (id,valor) Ao invés disso ele só recebe (valor) e vc necessita converter este valor em um objeto conforme sua necessidade. valeu?

TulioACastro

O rich:Combobox não é um substituto do h:selectOneMenu, ele é apenas um complemento de SuggestionBox. Diferente do h:selectOneMenu,
o rich:combobox recebe apenas uma Lista de String.

Abraço

JotaJota

E ae beleza?
Então, tenta fazer o override na sua classe do metodo toString();
neste metodo chame o campo que melhor descreveria o objeto.

não é uma boa pratica, mas resolve.

abração

//Na tela
<rich:comboBox suggestionValues="#{Bean.listaDeFrete}" directInputSuggestions="true" defaultLabel="Selecione um tipo de Frete"  width="300" >
</rich:comboBox>

//na classe Frete:
	@Override
	public String toString() {
		return getDescricao();
	}
Criado 9 de abril de 2008
Ultima resposta 30 de set. de 2010
Respostas 9
Participantes 8