Pessoal estou de volta!
Bem, antes de postar aqui procurei em inumeros foruns e livros.
Me ajudem, por favor!
Estou com um problema no meu rich:combobox, segue meu .jsp
<rich:comboBox id="teste" converter="br.iteratorsystems.cps.beans.TesteConverter" enableManualInput="false" value="#{administrationBean.testeObj}" styleClass="letrasDefault">
<f:selectItems value="#{administrationBean.preencheComboTeste}"/>
</rich:comboBox>
segue uma parte do meu bean, onde carrega o combo
public List<SelectItem> getPreencheComboTeste() {
Teste teste = new Teste();
Teste teste2 = new Teste();
List<SelectItem> lista = new ArrayList<SelectItem>();
teste.setCodigo(1000);
teste2.setCodigo(2000);
teste.setNome("Xi Marquinho");
teste2.setNome("Deu Certo");
lista.add(new SelectItem(teste,String.valueOf(teste.getCodigo())));
lista.add(new SelectItem(teste2,String.valueOf(teste2.getCodigo())));
return lista;
}
obs: minha classe Teste esta com equals e hashCode
e minha classe converter
package br.iteratorsystems.cps.beans;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
public class TesteConverter implements Converter{
public final static String CONVERTER_ID = "br.iteratorsystems.cps.beans.AdministrationBean";
public Teste getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
Teste t = null;
try{
if(arg2 == null) {
return null;
}
Integer.parseInt(arg2);
t = new Teste();
t.setNome(arg2);
}catch (Exception e) {
e.printStackTrace();
}
return t;
}
public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
if(arg2 == null) {
return null;
}
if(arg2 instanceof Teste) {
return ((Teste) arg2).getNome();
}
return arg2.toString();
}
}
O problema é que quando faço o parse para Integer, não vem o código da classe teste, e sempre o nome!!
Alguem pode me ajudar? nao sei onde estou errando…
abraços…!