Pessoal, por favor me ajudem.
Tenho um SelectOneMenu e quero pegar o valor dele…estou fazendo assim…me ajudem…
xhtml
Bairro: <h:selectOneMenu value="#{pizzariaTO.bairro}" tittle="Selecione seu bairro!">
<f:selectItem itemLabel="Morumbi" value="morumbi"/>
<f:selectItem itemLabel="Interlagos" value="interlagos"/>
<f:selectItem itemLabel="Brooklin" value="brooklin"/>
</h:selectOneMenu>
<br/><br/>
Bean
public class PizzariaTO {
private String nome;
private String telefone;
private String bairro;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
}
O erro que está dando é:
exception
javax.servlet.ServletException: java.lang.String cannot be cast to javax.faces.model.SelectItem
javax.faces.webapp.FacesServlet.service(FacesServlet.java:325)
Valeu galera
substitui o atributo value por itemValue
1 curtida
Não é value… mas sim itemvalue…
Exemplo:
<f:selectItem itemLabel="Morumbi" itemValue="morumbi"/>
Falows…
1 curtida
Tiburcio e Carlos, valeu pela resposta.
O que acontece é o seguinte:
Eu acho que o que está errado é o <h:selectOneMenu value="#{pizzariaTO.bairro}"
pois esta propriedade de Bean é String e precisava ser SelectItem certo? Se positivo, a questão é, como faço para passar um SelectItem para String.
Valeuu…
Abss
vc acha?
vc não vai ao menos testar a solução que foi passada?
Tiburcio, o erro que está dando é de conversão (casting) de SelectItem para String, por isso que falo que “ACHO” que não é isso, e também está aqui nesse site (http://www.roseindia.net/jsf/selectOneMenu.shtml) como referencia da onde tirei o comando.
Agradeço as respostas meu velho.
Testar eu vou, mas no momento não posso, estou no trabalho.
Valeu!!
ABss
o exemplo do roseIndia que vc viu esta assim:
<h:form>
<h:selectOneMenu id="som" value="TableBean.perInfoAll" title="select any one in this menu">
<f:selectItem id="si1" itemLabel="Thums Up" itemValue="11" />
<f:selectItem id="si2" itemLabel="Limca" itemValue="22" />
<f:selectItem id="si3" itemLabel="Pepsi" itemValue="33" />
<f:selectItem id="si4" itemLabel="Sprite" itemValue="44" />
<f:selectItem id="si5" itemLabel="Frooti" itemValue="55" />
<f:selectItem id="si6" itemLabel="Coca-Cola" itemValue="66" />
</h:selectOneMenu>
esta itemValue não value.
O melhor é consultar a documentação oficial, que diz que a opção itemValue:
“Valor a ser devolvido para o servidor se essa opção for selecionada pelo usuário”.
o atributo value devolverá um objeto selectItem, por isso que da o seu erro.
aqui o link para vc consultar:
http://download.oracle.com/javaee/5/javaserverfaces/1.2/docs/tlddocs/
Muito Obrigado Tiburcio, eu verifiquei e vi que estava errado mesmo.
Agora chagamos no mesmo ponto, o que eu não estou conseguindo é fazer o casting. Na verdade eu não sei como faço, se coloco a pripriedade do meu Bean como selectItem e jogo para outra variavel covertendo ou se faço de outro jeito.
Valeuuuu…
Abs
mas cara, vc ta complicando,rsrs
no seu bean vc coloca uma String simples e vc usa o atributo itemValue no f:selectItem…
Bairro: <h:selectOneMenu value="#{pizzariaTO.bairro}" tittle="Selecione seu bairro!">
<f:selectItem itemLabel="Morumbi" itemValue="morumbi"/>
<f:selectItem itemLabel="Interlagos" itemValue="interlagos"/>
<f:selectItem itemLabel="Brooklin" itemValue="brooklin"/>
</h:selectOneMenu>
<br/><br/>
e o bean continua como vc postou:
[code]public class PizzariaTO {
private String nome;
private String telefone;
private String bairro;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
}
[/code]
Ahhhh…poxa…
O que eu achei que fosse era um erro de casting pq quando eu coloquei essa linha
Bairro: <h:selectOneMenu value="#{pizzariaTO.bairro}" tittle="Selecione seu bairro!">
No lugar do value eu teria que colocar uma variavel do tipo SelectItem e não String… mas se vc está falando que funciona com uma String e é só mudar para ItemValue, vou fazer hoje a noite e te passo.
Valeuuuu…
Absss