Opa turma, tudo bom?
É o seguinte tem 2 dias que estou com esse erro e não consigo solucionar, já vasculhei por inúmeros tópicos aqui do fórum, mas nenhum conseguiu me ajudar de fato.
Estou desenvolvendo um sistema de perguntas e respostas simples, porém quando selecione um item do radio button da o erro:
formDesafio:respostas: Erro de validação: o valor não é válido
@ManagedBean
@ViewScoped
public class DesafioMB extends AbstractMB{
@EJB private PerguntaFacade perguntaFacade;
@EJB private RespostaFacade respostaFacade;
private Pergunta pergunta = new Pergunta();
private Resposta respostaSelecionada = new Resposta();
private List<Pergunta> perguntas;
public void responder(){
//se a resposta selecionada for igual a 1 ela é a correta
if(respostaSelecionada.getCorreta() == 1)
{
//faz ações se o usuário acertar
}
else
{
//faz ações se o usuário errar
}
}
//getters e setters
Já tentei criar um custom converter, mas não deu certo
Já passar apenas o id para o backbean e depois recupear o objeto através do id, mas da o mesmo erro
[quote=lele_vader]Não falta um converter não para poder converter o seu objeto de Resposta para o combobox ?
[/quote]
Não entendi, eu tentei criar um converter… Vi vários exemplos, fiz mas não deu certo!
[quote=lele_vader]O getAsObject tinha que retornar o seu objeto resposta não ?
você implementou o método toString da classe Resposta, pois você chama toString em getAsString.
Acredito que o toString você pode retornar o id do objeto para no getAsObject pegar esse id e consultar pelo objeto completo.
[/quote]
Então como estou utilizando EJB, li que converteres ainda não dão suporte para injeção de dependência. Teria outra forma de buscar esse objeto, ou só por lookup?
No value acho que ficaria respostaSelecionada, o qual é um objeto Resposta.
O que o converter vai fazer é pegar o seu objeto e colocar o select como long e quando der o submit pegar o long e transformar em objeto de novo, acredito eu.
[quote=lele_vader]No value acho que ficaria respostaSelecionada, o qual é um objeto Resposta.
O que o converter vai fazer é pegar o seu objeto e colocar o select como long e quando der o submit pegar o long e transformar em objeto de novo, acredito eu.
Dá uma olhada no exemplo que te passei.[/quote]
Bom consegui resolver o problema, o que eu fiz foi:
Troquei o contexto de ViewScoped para RequestScoped