Estou listando várias cidades em um select one menu, e está funcionando parcialmente, meu único problema é que eu quero exibir a cidade + sigla do estado dela, mas quando eu carrego a tela ele imprime assim, não entendo o porque:
Minha tela:
<p:selectOneMenu filter="true" id="cidade" value="#{orientadorMB.pessoa.idCidade}" required="true" requiredMessage="Necessário informar uma cidade" converter="omnifaces.SelectItemsConverter">
<f:selectItems value="#{orientadorMB.cidades}" var="cidade" itemValue="#{cidade.idCidade}" itemLabel="#{cidade.nomeCidade} - #{cidade.sigla}"/>
</p:selectOneMenu>
<p:message for="cidade" />
Minhas classes modelo Estado e Cidade:
public class Estado {
private int idEstado;
private String nomeEstado;
private String sigla;
/*getters and setters */
public class Cidade extends Estado{
private int idCidade;
private String nomeCidade;
/*getters and setters */
ClasseDao
public List<Cidade> MostrarCidades() {
Connection con = Conexao.getConnection();
PreparedStatement stmt = null;
ResultSet rs = null;
List<Cidade> cidade = new ArrayList<>();
try {
stmt = con.prepareStatement("select c.id, c.nome, e.sigla from estado e inner join cidade c on e.id = c.id_estado order by c.id ASC");
rs = stmt.executeQuery();
while (rs.next()) {
Cidade c = new Cidade();
c.setIdCidade(rs.getInt("id"));
c.setNomeCidade(rs.getString("nome"));
c.setSigla("sigla");
cidade.add(c);
}
} catch (SQLException ex) {
Logger.getLogger(CidadeDAO.class.getName()).log(Level.SEVERE, null, ex);
} finally {
Conexao.closeConnection(con, stmt, rs);
}
return cidade;
}
Bean que carrega a lista
public OrientadorMB() {
cidades = cdao.MostrarCidades();
}
