Bora lá, um combobox(dropdownlist) conterá todos cargos de funcionarios existentes na empresa(Ex: Gerente, vendedor e etc…).
Esta informação é buscada no banco de dados através de uma classe DAO, que retorna um arraylist de objetos CargoT, que tem as seguintes propriedades
private Long id;
private String desc;
//gets e sets ficam aqui
@Override
public String toString(){
return desc;
}
Consegui colocar estes valores dentro do componente, associando este com um objeto Cargosque é do tipo com.sun.webui.jsf.model.Option[], conforme trecho abaixo:
public static Option[] getCargos(){
Option[] opcoes = null;
CargoDAO cargoDAO = new CargoDAO();
ArrayList <CargoT> cargos = cargoDAO.listaTodos(); //retorna a lista de cargos existentes
if (!(cargos == null)){
int tam = cargos.size();
opcoes = new Option[tam];
for(int i=0;i<tam;i++){
opcoes[i] = new Option(cargos.get(i));
}
}
return opcoes;
}
Funciona a mil maravilhas.
O problema, é que quando o usuario selecionar o cargo, eu preciso pegar o valor do id daquele cargo para fazer uma operação na base de dados. Ou, seja, preciso retirar o objeto CargoT correspondente.
Já tentei usar o método .getSelected() do dropdownlist, onde é retornado um objeto, mas ele não traz CargoT, mas sim um objeto String.
Agradeço qualquer ajuda
Venom