Concatenando no SelectOneMenu

2 respostas Resolvido
jsf
S

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();
}

2 Respostas

Jonathan_Medeiros
Solucao aceita

Está errado!

c.setSigla(rs.getString("sigla"));

S

Verdade kkk , falta de atenção a minha, obrigado

Criado 2 de julho de 2019
Ultima resposta 2 de jul. de 2019
Respostas 2
Participantes 2