Converte em JSF

0 respostas
C

Boa noite, tudo?

É o seguinte moçada eu preciso fazer o converter pra usar no rich:comboBox, eu sei que assim funciona:

[color=red]Classe Converter:[/color]

[b]public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {

Integer code = Integer.parseInt(arg2);

try {

return prodDAO.getById(code);

} catch (SQLException ex) {

Logger.getLogger(ProductConverter.class.getName()).log(Level.SEVERE, null, ex);

} catch (ClassNotFoundException ex) {

Logger.getLogger(ProductConverter.class.getName()).log(Level.SEVERE, null, ex);

}

return null;

}
public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
    Product prod = (Product)arg2;
    return String.valueOf(prod.getCode());
}[/b]
[color=red]ProductDAO:[/color]

public Product getById(int idProduct) throws SQLException, ClassNotFoundException {

PreparedStatement ps = (PreparedStatement) getPreparedStatement(“SELECT CODE, DESCRICAO, NUBEROFITENS, PRICE FROM PRODUCT WHERE CODE = ?”);

ps.setInt(1, idProduct);

ResultSet rs = ps.executeQuery();

if(!rs.next()) return null;

Product toReturn = new Product();

populateProd(toReturn, rs);

rs.close();

ps.close();

return toReturn;

}

Mas nao queria fazer assim, pois quando tiver uma quantia de usuários vai matar meu banco… entao pensei em fazer assim:

[color=red]Classe Converte:[/color]
[b]@Override
public TipoCombustivel getAsObject(FacesContext fc, UIComponent uic, String string) {

if (string != null && !string.isEmpty()) {
        return TipoCombustivelMBean.getByKey(string);
    }
    return null;
}

@Override
public String getAsString(FacesContext fc, UIComponent uic, Object o) {
    return o.toString();
}[/b]
[color=red]Meu Bean:[/color]

[b]// Esse método faz o relacionamento da chave que é o código e o Objet que aqui é a lista de combustivel;

public static TipoCombustivel getByKey(String key) {

return listaTipoCombustivel.get(key);

}
// Esse metódo popula a lista de Tipo de Combustivel que vai aparecer no combo;
public List<SelectItem> getTipoCombustivelParaCombo() {
    List<SelectItem> lista = new ArrayList<SelectItem>();
    listaTipoCombustivel = new HashMap<String, TipoCombustivel>();
    List<TipoCombustivel> listaCombustivel = transporteDAO.getTipoCombustivel();

    for (TipoCombustivel tc : listaCombustivel) {
        listaTipoCombustivel.put(tc.getDescricao(), tc);
        lista.add(new SelectItem(tc, tc.getCodigo().toString()));
    }

    return lista;
}[/b]
[color=red]Meu DAO:[/color]

//    Método que retorna uma lista de Tipo de Combustivel;

public List getTipoCombustivel() {

return getPureList(TipoCombustivel.class,“from TipoCombustivel combustivel”);

}

Mas dessa forma o Objet do converter esta vindo null e eu não como valoriza-lo. Vocês sabem como posso fazer isso ou sabem alguma outra foma de fazer o converter sem ter que ficar indo e voltando no banco?

Abraço amigos.

Criado 31 de março de 2011
Respostas 0
Participantes 1