[RESOLVIDO] - JSF - select one menu: Erro de validação: o valor não é válido
28 respostas
C
caematos
Buenas!
Há algo errado ? não sei pq ele não aceita...
se eu uso o p:commandButton do primefaces ele funciona, mas nao redireciona a página
se eu uso o converter javax.converter.character ele funciona, mas só pega a primeira letra, claro;
preciso fazer algum custom converter?
:?:
xhtml:
<p:selectOneMenuid="tipo"value="#{chamadoBean.chamado.tipoChamado}"effect="drop"style="width:180px"><f:selectItemitemLabel="Tipo de Chamado"/><f:selectItemsvalue="#{chamadoBean.tipoChamado}"var="tipo"itemValue="#{tipo}"itemLabel="#{tipo}"/></p:selectOneMenu>
<p:selectOneMenuid="tipo"value="#{chamadoBean.chamado.tipoChamado}"effect="drop"style="width:180px"converter="StringerConverter"><f:selectItemitemLabel="Tipo de Chamado"/><f:selectItemsvalue="#{chamadoBean.tipoChamado}"var="tipo"itemValue="#{tipo}"itemLabel="#{tipo}"/></p:selectOneMenu>
public List<SelectItem> getTipoChamado() {
if (this.tipoChamado == null) {
this.tipoChamado = new ArrayList<SelectItem>();
this.tipoChamado.add(new SelectItem("Reclamação", "Reclamação"));
this.tipoChamado.add(new SelectItem("Sugestão", "Sugestão"));
}
return tipoChamado;
}
não: javax.faces.model.SelectItem cannot be cast to java.lang.String
alisson: continua sem funcionar tb.
tem algo errado…
Estranho cara, aqui eu faço assim e funciona na boa, apesar que eu não mencionei, mas no meu xhtml eu faço assim:
<p:selectOneMenuid="tipo"value="#{chamadoBean.chamado.tipoChamado}"effect="drop"style="width:180px"converter="StringerConverter"><f:selectItemitemLabel="Tipo de Chamado"/><f:selectItemsvalue="#{chamadoBean.tipoChamado}"/></p:selectOneMenu>
Eu não declaro a var no f:selectItem pra depois chamar no itemLabel e itemValue, deixo isso pro List, e é claro, não uso o converter daí.
C
caematos
vc faz com List ou List como eu ?
agradeço muito por estar me ajudando, apesar de ser um problema bobo e esse forum ter tanta gente, vc é o único que está tentando me ajudar
valeu
A
alissonvla
cara,
so usar List que vai funcionar, alias teria q funcionar.rs
t+
nazgulzurak
caematos:
vc faz com List ou List como eu ?
agradeço muito por estar me ajudando, apesar de ser um problema bobo e esse forum ter tanta gente, vc é o único que está tentando me ajudar
valeu
Eu uso o List mesmo. Por exemplo:
No bean:
publicclassBean{privateStringrecebeValor;privateList<SelectItem>lista;//metodospublicList<SelectItem>getLista(){if(lista.isEmpty){lista=newArrayList<SelectItem>();lista.add(newSelectItem("Sugestao","Sugestão");//O primeiro valor do SelectItem é o itemValue e o segundo o itemLabel}returnlista;}}
Com isso, assim que você passa a lista pro f:selectItems, ele já popula com cada valor no seu lugar.
E
evefuji
com o p:commandButton do primefaces você precisa setar o ajax=“false” para redirecionar a página (pode também update=“id do objeto” para atualizar por ajax)
Com o converter, acho que precisa do javax.faces.converter.String, não o character.
Qual o tipo do value="#{chamadoBean.chamado.tipoChamado}" ? String? não faz nenhuma operação no setTipoChamado?
C
caematos
evefuji:
com o p:commandButton do primefaces você precisa setar o ajax=“false” para redirecionar a página (pode também update=“id do objeto” para atualizar por ajax)
Com o converter, acho que precisa do javax.faces.converter.String, não o character.
Qual o tipo do value="#{chamadoBean.chamado.tipoChamado}" ? String? não faz nenhuma operação no setTipoChamado?
setando ajax=“false” dá o erro, como eu falei no 1o post.
não existe esse conversor aqui
C
caematos
bahhhhhhhhhhh não sei mais oq fazer;
nazgulzurak
Cara, explica certinho o que vc tá tentando fazer com esse selecOneMenu e o que sua aplicação tá querendo fazer.
C
caematos
simples: quero colocar no bean todos os tipos de chamados que podem ser escolhidos no menu. Não tem uma classe TipoChamado, e sim um atributo do tipo String em Chamado, tipoChamado onde ele vai pegar o valor escolhido no selectonemenu e salvar lá.
C
caematos
<h:selectOneMenuid="tipo"value="#{chamadoBean.chamado.tipoChamado}"effect="drop"style="width:180px"><f:selectItemitemValue="Tipo de Chamado:"/><f:selectItemitemValue="Sugestão"/><f:selectItemitemValue="Reclamação"/></h:selectOneMenu>
até assim tá dando o erro ! AAAAAAAAAA
C
caematos
não acredito nisso!!!
descobri o problema
tinha que colocar isso no início do xml:
<?xml version="1.0" encoding="ISO-8859-1" ?>
descobri quando eu selecionei uma opção que não tinha acentos e funcionou.
era culpa do encoding!
obrigado quem tentou me ajudar! fica a dica.
and.rds
Olha, tive o mesmo problema, o jeito que consegui resolver isso foi em vez de recuperar o objeto, eu recuperei o id.
O Meu resolveu somente para o firefox 14, mas para o IE 8 e 9 continua o mesmo problema. Alguma ideia ?
Grato.
S
siesler1 like
pessoal.
sei que esse post é antigo, mas tive o mesmo problema, a causa era o fato de eu ter copiado os metodos equals e hashcode de outra classe. O metodo hashcode não pode ter a formula igual dentro de uma mesma aplicação.
Os metodos equals e hashcode devem ser gerados pela IDE, e não copiados de outra classe.
Att:
José Luiz
M
mezini
Siesler, obrigado pelo comentário, meu problema era semelhante ao seu, marquei bobeira e esqueci de gerar o equals na pressa e estava apanhando aqui… e pensando “meu deus, o que pode estar havendo” heheeh
Muito obrigado pelo post.
Um abraço.
siesler:
pessoal.
sei que esse post é antigo, mas tive o mesmo problema, a causa era o fato de eu ter copiado os metodos equals e hashcode de outra classe. O metodo hashcode não pode ter a formula igual dentro de uma mesma aplicação.
Os metodos equals e hashcode devem ser gerados pela IDE, e não copiados de outra classe.