Coversor como fazer?

2 respostas
well

olá pessoal nao estou conseguindo fazer um conversor para minha aplicacao. tenho um selectOneMenu que lista dados de outra tabela para eu poder salvar.
exemplo: tenho o produto e na hora de salvar o produto eu escolho no selectOneMenu o seu vendedor que é de outra tabela e salvo. so que ai esta dando o seguinte erro

"j_id_jsp_635661490_3:j_id_jsp_635661490_8: Validation Error: Value is not valid "
Agora fiz o seguinte

meu bean esta assim

public List<SelectItem> getUsersOfSystem() {
        List<SelectItem> toReturn = new LinkedList<SelectItem>();
        for (User usr : usrDAO.getUsers()) {
            toReturn.add(new SelectItem(usr,usr.getName()));
        }
        return toReturn;

o jsp esta assim

Owner : <h:selectOneMenu value="#{ProductFace.selectedProduct.owner}">
                    <f:selectItems value="#{ProductFace.usersOfSystem}"/>
                    <f:converter converterId="converterOwner"/>
                </h:selectOneMenu>

o conversor esta assim

public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
        Integer owner = Integer.parseInt(arg2);
        return userDAO.getUsers();
    }

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

}

e na entidade esta assim

@Override
    public String toString() {
        return String.valueOf(id);
    }
}

so que mesmo depois disso tudo eu nao consigo fazer funcionar… e da o erro "j_id_jsp_635661490_3:j_id_jsp_635661490_8: Validation Error: Value is not valid "

estou usando Hibernate… nao sei se isso altera em algo…

desde já agradeço pois estou precisando muito disso…

2 Respostas

paulofernandesjr

o que esse metodo retorna: userDAO.getUsers();

colored

Mano. igual te mandei no otro topico…
cria um metodo q retorna um objeto com vc passando o nome do usuario por exemplo…

Exemplo:

Usuario u : dao.procurarPorId(id);

esse vc ta passando um id…
cria um metodo que vc passa o nome do usuario…

private GenericDAO<Colaborador> dao = new DAOFactory().getColaboradorDAO();   
       
    public Object getAsObject(FacesContext context, UIComponent component, String value) {   
        Map<String, Object> parametros = new HashMap<String, Object>();     
        parametros.put("nome", value.toString());   
        return dao.ObjetoPorCriterio("from Colaborador c where c.nome = :nome", parametros);   
    }   
  
    public String getAsString(FacesContext context, UIComponent component, Object classe) {   
        return ((Colaborador)classe).getNome();   
    }
Criado 17 de setembro de 2009
Ultima resposta 18 de set. de 2009
Respostas 2
Participantes 3