Olá pessoal,
estava com um problema para colocar o selectOneMenu vinculado ao Banco de dados, porém um outro post aqui me ajudou com isso, mas agora ele mostra os dados duplicados no select da pagina. Deve ser algum detalhe que eu não estou reparando e já to maior tempão tentando resolver isso.. é projeto da faculdade..
public class ManagedBean {
private List<SelectItem> siglas = new ArrayList<SelectItem>();
public List<SelectItem> getSiglas() {
Session session = HibernateUtil.getSessionFactory().openSession();
Query query = session.createQuery("from Uf");
List<Uf> listaUf = query.list();
for (Uf u : listaUf){
SelectItem s = new SelectItem();
s.setValue(u.getIduf());
s.setLabel(u.getUf());
siglas.add(s);
}
return siglas;
}
na pagina jsp:
<h:outputLabel value="UF: " for="uf"/>
<h:selectOneMenu value="#{controle.cliente.endereco.uf}" id="uf" required="true" requiredMessage="Por favor, informe um estado!">
<f:selectItems value="#{controle.siglas}"/>
</h:selectOneMenu>
package entity;
import javax.persistence.*;
@Entity
@Table(name="uf")
public class Uf {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="iduf")
private Integer iduf;
@Column(name="nomeuf", length=2, nullable=false)
private String uf;
public Uf() {
}
//atributos guetters e setters
}
banco de dados: mysql
create table uf(
iduf integer auto_increment primary key,
nomeuf char(2) not null unique
);
insert into uf (nomeuf) values ('AC');
insert into uf (nomeuf) values ('AL');
insert into uf (nomeuf) values ('AP');
insert into uf (nomeuf) values ('AM');
insert into uf (nomeuf) values ('BA');
insert into uf (nomeuf) values ('CE'); // e ate o ultimo