Problema com CONVERTE

nao consigo pegar o valor de meu combobox…

erro…

13/10/2011 14:24:31 com.sun.faces.lifecycle.RenderResponsePhase execute
INFO: WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=j_id_jsp_818655112_1:j_id_jsp_818655112_11[severity=(ERROR 2), summary=(j_id_jsp_818655112_1:j_id_jsp_818655112_11: Validation Error: Value is not valid), detail=(j_id_jsp_818655112_1:j_id_jsp_818655112_11: Validation Error: Value is not valid)]

…jsp

<h:selectOneMenu value="#{camposBusca.sexo}"
							rendered="#{camposBusca.campoSexo }" converter="SexoConverter" >
	<t:selectItems value="#{camposBusca.listaDropSexo}" var="s" itemLabel="#{s.nome}" itemValue="#{s}" />
</h:selectOneMenu>

converter


public class SexoConverter implements Converter {

	@Override
	public Sexo getAsObject(FacesContext arg0, UIComponent arg1, String value) {
        if (value != null && !value.isEmpty()) {  
            //seu método de pesquisa para trazer uma instância de Curso  
        	DAO<Sexo> dao = new DAO<Sexo>(Sexo.class);
            return dao.busca(new Long(value));  
        }  
  
        return null;
	}
	
	 @Override  
	    public String getAsString(FacesContext context, UIComponent component, Object value) {  
	        if (value instanceof Sexo) {  
	        	Sexo sexo = (Sexo) value;  
	            return  sexo.getId()+"";  
	        }  
	  
	        return "";  
	    } 
}

no MB…

Sexo sexo = new Sexo();
//getters e setters...

//tenho um botao q chama esse metodo...
//so pra teste .. pra saber se volto o valor correto...
public String mostraSexoSelecionado(){
System.out.println("mostrandoSexooo:"+ sexo.getNome());
		return null;
}

faces-config



<converter>  
    <converter-id>SexoConverter</converter-id>  
    <converter-class>br.com.xxx.yyy.Conversores.SexoConverter</converter-class>  
</converter>  

alguem pode me ajudar … to a 2 dias batendo nisso…

eu faco assim e funciona cara,

public class ClienteConverter implements Converter {

	@Override
	public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
		return new Cliente(arg2);
	}

	@Override
	public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
		return ((Cliente)arg2).getNome();
	}
}

t+

[quote=alissonvla]eu faco assim e funciona cara…

[/quote]

cara deu a mesma coisa…

vc ja tenhou assim

<h:selectOneMenu value="#{camposBusca.sexo.nome}" 

[quote=alissonvla]vc ja tenhou assim

<h:selectOneMenu value="#{camposBusca.sexo.nome}" 

[/quote]

mesma coisa… e outra,…eu qro o objeto inteiro ou o id… trabalhar com nome eh mais passivel d erro.
claro q em um combo de sexo da certo… mais e um outro drop q o cliente cadastra o nome e outros dados…

cara,

eu falei errado ali, no meu caso eu faço assim
tenho o converter

@Override
	public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
		return Integer.parseInt(arg2);
	}

	@Override
	public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
		return String.valueOf(arg2);
	}

e no xhtml

<h:selectOneMenu value="#{camposBusca.sexo.idSexo}"  

[quote=alissonvla]cara,

[/quote]

Deu certo… mais veio so o ID… eu qria o Objeto completo… q ae eu ganhava codigo e tempo…

Mais se o jeito eh esse … vai esse… :smiley:

vlw :smiley:

ha sim,

depois vc da uma olhada nesse link http://www.mkyong.com/jsf2/custom-converter-in-jsf-2-0/ e ve se da para te ajudar em algo.

t+