Fala Galera,
Estou tendo um problema parecido em um sistema que estou fazendo, estou aprendendo JSF 2 agora… tentei as soluções apresentadas Aqui mais sempre na hora de enviar o formulário aparece a mensagem:
id=input-cidade Erro de Validação: O valor não é válido
Estou pegando as informações de um XML que me retorna as cidades de acordo com o estado passado. Depois da chamada AJAX a lista é montada mas na hora de enviar o form ele dá o erro de validação
segue o código
Meu Form:
[code]<h:outputLabel value=“Estado: " for=“input-estado” />
<h:selectOneMenu id=“input-estado” required=“true” value=”#{consultoraComumMB.estado}" >
<f:selectItem itemLabel=“Escolha um Estado” itemValue="–" />
<f:selectItem itemLabel=“Rio de Janeiro” itemValue=“RJ” />
<f:selectItem itemLabel=“São Paulo” itemValue=“SP” />
<f:selectItem itemLabel=“Espírito Santo” itemValue=“ES” />
<f:selectItem itemLabel=“Minas Gerais” itemValue=“MG” />
<f:selectItem itemLabel=“Parana” itemValue=“PR” />
<f:selectItem itemLabel=“Santa Catarina” itemValue=“SC” />
<f:selectItem itemLabel=“Rio Grande do Sul” itemValue=“RS” />
<f:ajax event=“change” render=“input-cidade” listener="#{consultoraComumMB.atualizarCidades}" execute="@this" />
</h:selectOneMenu>
<h:outputLabel value="Cidade: " for="input-cidade" />
<h:selectOneMenu id="input-cidade" value="#{consultoraComumMB.endereco.cidade}" immediate="true">
<f:selectItems value="#{consultoraComumMB.cidades}" var="cidade" itemValue="#{cidade.uf}" itemLabel="#{cidade.id}" />
</h:selectOneMenu>
[/code]
MEU BEAN
public class ConsultoraComumMB {
private Endereco endereco=new Endereco();
private List<Cidade> cidades;
private String estado;
public void atualizarCidades(){
List<Cidade> list = obterCidades(getEstado());
setCidades(list);
}
private List<Cidade> obterCidades(String estado){
CidadesAJAX cd=new CidadesAJAX();
//Informa o estado e monta a lista de municipios
List<Cidade> elements=cd.getCidades(getEstado());
return elements;
}
//getters e setters
}
minha classe cidade
[code]public class Cidade {
private String id;
private String uf;
public String getId() {
return id;
}
public String getUf() {
return uf;
}
public void setId(String id) {
this.id = id;
}
public void setUf(String uf) {
this.uf = uf;
}
@Override
public int hashCode() {
// TODO Auto-generated method stub
return super.hashCode();
}
@Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
return super.equals(obj);
}
}[/code]