Pessoal, estou desenvolvendo uma aplicação pequena com JSF e Hibernate, mais surgiu a dificuldade de capturar o id do cargo selecionado no selectOneListbox. Pesquisei bastante, fiz alguns exemplos q encontrei na internet, mais infelismente não consegui e estou pedindo a ajuda de vc´s.
O selectOneListbox é populado corretamente, só preciso msm o id do registro selecionado.
Tentei criar um Backbean (cargoBackbean) e tentei “associa-lo” ao componente (action="#{cargobean.capturaIdCargo}" ), mais com ctz esta “muito” errado.
Segue o código:
Classe: cargo.java
@Entity
public class cargo {
@Id
@GeneratedValue
private Long id;
private String cargo;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getCargo() {
return cargo;
}
public void setCargo(String cargo) {
this.cargo = cargo;
}
}
Classe: cargoDAO.java
public class cargoDAO {
private cargo cargo = new cargo();
public cargo getCargo() {
return cargo;
}
private List listaCargos;
public List getLstCargos(){
List<cargo> list = new cargoDAO().getCargosAll();
listaCargos = new ArrayList();
for(cargo c : list){
SelectItem si = new SelectItem();
si.setLabel(c.getCargo());
si.setValue(c.getId().toString());
listaCargos.add(si);
}
return listaCargos;
}
public void setListaCargos(List listaCargos) {
this.listaCargos = listaCargos;
}
public List getListaCargos() {
return listaCargos;
}
}
Classe: cargoBackbean.java
public class cargoBackbean {
private Session session;
private cargo cargo = new cargo();
public cargo getCargo() {
return cargo;
}
private Long idCargo;
public void setIdCargo(Long idCargo) {
this.idCargo = idCargo;
}
public Long getIdCargo() {
return idCargo;
}
public Long capturaIdCargo(){
this.idCargo = cargo.getId();
System.out.println("capturaIdCargo: " + idCargo);
return idCargo;
}
}
jsf:
<h:selectOneListbox id=“lstCargos” value="#{cargoDAO.cargo.cargo}">
<f:selectItems value="#{cargoDAO.lstCargos}"/>
</h:selectOneListbox>
<h:commandButton value=“Buscar Funcionário(s)” action="#{cargobean.capturaIdCargo}" />
Fico no aguardo da sugestão de vc´s.
Agradeço desde já.