Boa noite, estou iniciando meus estudos em JSF, já pesquisei nos tópicos e nenhuma das soluções sugeridas estão resolvendo o problema de “Erro de validação: o valor não é válido”. Vocês poderiam analisar o código?
Formulário de cadastro:
<h:body>
Cadastro
<h:form>
<h:panelGrid columns="2">
<h:outputLabel value="Nome: "/>
<h:inputText id="nome" value="#{inscricaoBean.p.nome}"/>
<h:outputLabel value="CPF: "/>
<h:inputText id="cpf" value="#{inscricaoBean.p.cpf}"/>
<h:outputLabel value="Instituição: "/>
<h:inputText id="instituicao" value="#{inscricaoBean.p.instituicao}"/>
<h:outputLabel value="E-mail: "/>
<h:inputText id="email" value="#{inscricaoBean.p.email}"/>
<h:outputLabel value="Cidade: "/>
<h:inputText id="cidade" value="#{inscricaoBean.p.cidade}"/>
<h:outputLabel value="Senha: "/>
<h:inputSecret id="senha" value="#{inscricaoBean.p.senha}"/>
<h:outputLabel value="Confirmar Senha: "/>
<h:inputSecret id="csenha" value="#{inscricaoBean.p.csenha}"/>
<h:outputLabel value="Atividades: "/>
<h:selectOneMenu id="atividde" value="#{inscricaoBean.p.a}" required="true">
<f:converter converterId="atividadeConverter"/>
<f:selectItems value="#{inscricaoBean.atividades}" var="item" itemValue="#{item.value}" itemLabel="#{item.label}"/>
</h:selectOneMenu>
<h:inputHidden/>
<h:commandButton value="Enviar" action="#{inscricaoBean.adicionar}"/>
</h:panelGrid>
</h:form>
</h:body>
Classe Bean:
package br.com.inscricao.bean;
import br.com.inscricao.entity.Atividade;
import br.com.inscricao.entity.Participante;
import br.com.inscricao.dao.InscricaoDAO;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.SelectItem;
ManagedBean
SessionScoped
public class inscricaoBean {
/**
* Creates a new instance of inscricaoBean
*/
private InscricaoDAO idao = new InscricaoDAO();
private Participante p = new Participante();
private Atividade a;
private List<Participante> participantes;
private List<Atividade> atividades;
public String cadastro(){
return "cadastro";
}
public String login(){
return "login";
}
public String administrativo(){
return "administrativo";
}
public List<Participante> getParticipantes() {
participantes = idao.getList();
return participantes;
}
public List<SelectItem> getAtividades() {
atividades = idao.getaList();
List<SelectItem> items = new ArrayList<>();
for (Atividade x : atividades){
SelectItem s = new SelectItem();
s.setValue(x.getId());
s.setLabel(x.getTitulo());
items.add(s);
}
return items;
}
public void adicionar(){
idao.addInscricao(p);
}
public String remover(Participante part){
this.p = part;
idao.removerInscricao(this.p);
return "index";
}
public String editar(Participante part){
this.p = part;
return "editar";
}
public String atualizar(){
idao.editarInscricao(this.p);
return "index";
}
public Participante getP() {
return p;
}
public void setP(Participante p) {
this.p = p;
}
public Atividade getA() {
return a;
}
public void setA(Atividade a) {
this.a = a;
}
public void setParticipantes(List<Participante> participantes) {
this.participantes = participantes;
}
}
Classe DAO:
package br.com.inscricao.dao;
import br.com.inscricao.entity.Atividade;
import br.com.inscricao.entity.Participante;
import br.com.inscricao.util.HibernateUtil;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;
public class InscricaoDAO {
private Session sessao;
private Transaction transacao;
private List list;
private List aList;
public void addInscricao(Participante i){
sessao = HibernateUtil.getSessionFactory().openSession();
transacao = sessao.beginTransaction();
Participante nova = new Participante();
nova.setNome(i.getNome());
nova.setCpf(i.getCpf());
nova.setSenha(i.getSenha());
nova.setCsenha(i.getCsenha());
nova.setCidade(i.getCidade());
nova.setInstituicao(i.getInstituicao());
nova.setEmail(i.getEmail());
nova.setA(i.getA());
sessao.save(nova);
transacao.commit();
}
public void removerInscricao(Participante i){
sessao = HibernateUtil.getSessionFactory().openSession();
transacao = sessao.beginTransaction();
sessao.delete(i);
transacao.commit();
}
public void editarInscricao(Participante i){
sessao = HibernateUtil.getSessionFactory().openSession();
transacao = sessao.beginTransaction();
sessao.update(i);
transacao.commit();
}
public List<Participante> getList() {
sessao = HibernateUtil.getSessionFactory().openSession();
transacao = sessao.beginTransaction();
Criteria consulta = sessao.createCriteria(Participante.class);
this.list = consulta.list();
return list;
}
public List<Atividade> getaList() {
sessao = HibernateUtil.getSessionFactory().openSession();
transacao = sessao.beginTransaction();
Criteria consulta = sessao.createCriteria(Atividade.class);
this.aList = consulta.list();
return aList;
}
public Atividade carregarAtividade(Integer id){
sessao = HibernateUtil.getSessionFactory().openSession();
Criteria consulta = sessao.createCriteria(Atividade.class);
consulta.add(Restrictions.eq("id", id));
Atividade a = (Atividade) consulta.uniqueResult();
return a;
}
}
Entidades (Participante e Atividade)
package br.com.inscricao.entity;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;
Entity
Table(name = “participante”)
public class Participante implements Serializable {
Id
GeneratedValue(strategy = GenerationType.IDENTITY)
private int codigo;
private String nome;
private String cpf;
private String instituicao;
private String email;
private String cidade;
private String senha;
private String csenha;
@OneToOne
private Atividade a;
public Participante() {
}
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getInstituicao() {
return instituicao;
}
public void setInstituicao(String instituicao) {
this.instituicao = instituicao;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getCsenha() {
return csenha;
}
public void setCsenha(String csenha) {
this.csenha = csenha;
}
public Atividade getA() {
return a;
}
public void setA(Atividade a) {
this.a = a;
}
public int hashCode() {
int hash = 7;
hash = 19 * hash + this.codigo;
return hash;
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Participante other = (Participante) obj;
if (this.codigo != other.codigo) {
return false;
}
return true;
}
}
package br.com.inscricao.entity;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
Entity
Table(name = “atividade”)
public class Atividade implements Serializable{
Id
GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String titulo;
private String carga_horaria;
private String tipo;
public Atividade() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getCarga_horaria() {
return carga_horaria;
}
public void setCarga_horaria(String carga_horaria) {
this.carga_horaria = carga_horaria;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public int hashCode() {
int hash = 5;
hash = 89 * hash + this.id;
return hash;
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Atividade other = (Atividade) obj;
if (this.id != other.id) {
return false;
}
return true;
}
}
obs. tive que tirar as anotações pq não permitia o envio aqui
Agradeço o retorno![details=Summary]This text will be hidden[/details]