Estou iniciando uma aplicação com serviço rest Json que busca API da lista de estados da IBGE. Funciona, porém é ordenado por "id" e gostaria de ordenar por "nome" no bean. Quem pode me ajudar ?
public class Estado {
private Long id;
private String nome;
private String sigla;
[getters and setters]
@PostConstruct
public void listar() {
try {
Client cliente = ClientBuilder.newClient();
WebTarget caminho = cliente.target("https://servicodados.ibge.gov.br/api/v1/localidades/estados");
String json = caminho.request().get(String.class);
Gson gson = new Gson();
Estado[] vetor = gson.fromJson(json, Estado[].class);
estados = Arrays.asList(vetor);
} catch (RuntimeException erro) {
org.omnifaces.util.Messages.addGlobalError("Ocorreu Erro!");
// Messages.addGlobalError("Ocorreu um erro ao tentar listar os fabricantes");
erro.printStackTrace();
}
}
[xhtml]
<f:metadata>
<f:viewAction action="#{estadoBean.listar}" />
</f:metadata>
<p:panel header="Estados" style="width:650px; text-align:left;">
<p:dataTable rowHover="true" id="tabela"
emptyMessage="Nenhum Estado Cadastrado." paginator="true"
paginatorPosition="bottom" value="#{estadoBean.estados}"
var="estado" rows="50">
<p:column headerText="Código" style="text-align:center;" width="70px;" sortBy="#{estado.id}">
<h:outputText value="#{estado.id}" />
</p:column>
<p:column headerText="Estado" width="250px;"
sortBy="#{estado.nome}">
<h:outputText value="#{estado.nome}" />
</p:column>