Erro no Converter com SelectOneMenu Primifaces 3.4

6 respostas
jeferson_alves

Boa tarde meus amigos, só posso contar coma ajuda de Deus e de vcs, não sei mais o que fazer com este erro.
Tenho uma entidade Contato e uma entidade Cliente, dentro do formulário Contato eu listo com o selectOneMenu os meus clientes, mas na hora de salvar no banco da
um erro, este logo abaixo. eu quero pegar o ID e armazenar no banco, estou tomando uma surra feia, antes eu só trabalhava com jsp, estou aprendendo jsf2.0 e primifaces 3.4 .
se alguém me ajudar, não sei nem como agradecer..

15:29:19,717 ERROR [stderr] (http--0.0.0.0-8080-6) java.lang.NumberFormatException: For input string: "jeffrfrfrf"

15:29:19,718 ERROR [stderr] (http--0.0.0.0-8080-6) 	at java.lang.NumberFormatException.forInputString(Unknown Source)

15:29:19,720 ERROR [stderr] (http--0.0.0.0-8080-6) 	at java.lang.Integer.parseInt(Unknown Source)

15:29:19,721 ERROR [stderr] (http--0.0.0.0-8080-6) 	at java.lang.Integer.parseInt(Unknown Source)

15:29:19,722 ERROR [stderr] (http--0.0.0.0-8080-6) 	at br.com.startup.s3.util.ContatoConverter.getAsObject(ContatoConverter.java:34)

frmNovo:j_idt38: Erro de validação: o valor é necessário.

XHTML

Converter

@FacesConverter(value="contatoConverter")
public class ContatoConverter implements Converter{
	
	 @Override  
	    public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException {  
	    	if (value != null && !value.equals("")) {	 
	            try {
	            	
					return new ClienteFacadeBean().buscarClientePelaChave(Integer.parseInt(value));
				} catch (NumberFormatException | StartupException e) {
					
					e.printStackTrace();
					
				}  
	            
	        }  
	        return null;  
	    }  
	  
	    @Override  
	    public String getAsString(FacesContext context, UIComponent component, Object object) throws ConverterException {  
	        if(object != null && object instanceof Cliente) {  
	            return ((Cliente)object).getIdCliente().toString();  
	        }  
	        return null;  
	    }  
	}

6 Respostas

LucianoTulio

vc implementou os métodos equals e hashcode na sua classe modelo?
se não faça isso.

eu passei por algo parecido e utilizo esse cadigo para pegar o valor de um selectOneMenu

package conversores;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;

import modelo.Cli;
import dao.CliDAO;

@FacesConverter(value="conversorCli", forClass=Cli.class)
public class ConversorCli implements Converter {

	CliDAO clidao = new CliDAO();

    public Cli getAsObject(FacesContext context, UIComponent component, String value) {
    	
    	if(value.trim().equals("")){
    		return null;
    	}	
    		else{
    			try{
    				Cli cliente = clidao.buscarCli(Integer.parseInt(value));//faço ele buscar o objeto no banco
    				        	
    				return cliente;
    			} catch(NumberFormatException exception) {  
                    throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Conversion Error", "Mes Invalido"));  
                }  
    	}
    	
    }

    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
    	if (value == null || value.equals("")) {  
            return "";  
        } else {  
            return String.valueOf(((Cli) value).getCod() );  
        }  
    }

}

minha classe modelo é

package modelo;

// Generated 17/08/2012 12:50:01 by Hibernate Tools 3.6.0

import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


@SuppressWarnings("serial")
@Entity
@Table(name = "cli")
public class Cli implements java.io.Serializable {
	@Id
	private Integer cod;
	private String razao;
	private String socio;
	private String endereco;
	private String bairro;
	private String cidade;
	private String estado;
	private String cep;
	private String telefone;
	private String celular;
	private String email;
	private String insc;
	private String cnpj;
	private String locacao;
	private String locBairro;
	private String locCidade;
	private String locEstado;
	private String telefone2;
	private String email2;
	private String locomplemento;
	private Byte tipopg;
	private Date dataalt;
	private String complemento;
	private Integer codSite;
	private String cliobs;
	private Date clidata;
	private String locacaoAlternativa;
	private String locCidadeAlternativa;
	private String locBairroAlternativo;
	private String locEstadoAlternativo;
	private String locCompAlternativo;
	private Integer codsindicato;

	public Cli() {
	}

	public Cli(String razao, String socio, String endereco, String bairro,
			String cidade, String estado, String cep, String telefone,
			String celular, String email, String insc, String cnpj,
			String locacao, String locBairro, String locCidade,
			String locEstado, String telefone2, String email2,
			String locomplemento, Byte tipopg, Date dataalt,
			String complemento, Integer codSite, String cliobs, Date clidata,
			String locacaoAlternativa, String locCidadeAlternativa,
			String locBairroAlternativo, String locEstadoAlternativo,
			String locCompAlternativo, Integer codsindicato) {
		this.razao = razao;
		this.socio = socio;
		this.endereco = endereco;
		this.bairro = bairro;
		this.cidade = cidade;
		this.estado = estado;
		this.cep = cep;
		this.telefone = telefone;
		this.celular = celular;
		this.email = email;
		this.insc = insc;
		this.cnpj = cnpj;
		this.locacao = locacao;
		this.locBairro = locBairro;
		this.locCidade = locCidade;
		this.locEstado = locEstado;
		this.telefone2 = telefone2;
		this.email2 = email2;
		this.locomplemento = locomplemento;
		this.tipopg = tipopg;
		this.dataalt = dataalt;
		this.complemento = complemento;
		this.codSite = codSite;
		this.cliobs = cliobs;
		this.clidata = clidata;
		this.locacaoAlternativa = locacaoAlternativa;
		this.locCidadeAlternativa = locCidadeAlternativa;
		this.locBairroAlternativo = locBairroAlternativo;
		this.locEstadoAlternativo = locEstadoAlternativo;
		this.locCompAlternativo = locCompAlternativo;
		this.codsindicato = codsindicato;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "cod", unique = true, nullable = false)
	public Integer getCod() {
		return this.cod;
	}

	public void setCod(Integer cod) {
		this.cod = cod;
	}

	@Column(name = "razao", length = 50)
	public String getRazao() {
		return this.razao;
	}

	public void setRazao(String razao) {
		this.razao = razao;
	}

	@Column(name = "socio", length = 50)
	public String getSocio() {
		return this.socio;
	}

	public void setSocio(String socio) {
		this.socio = socio;
	}

	@Column(name = "Endereco", length = 50)
	public String getEndereco() {
		return this.endereco;
	}

	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	@Column(name = "Bairro", length = 30)
	public String getBairro() {
		return this.bairro;
	}

	public void setBairro(String bairro) {
		this.bairro = bairro;
	}

	@Column(name = "Cidade", length = 30)
	public String getCidade() {
		return this.cidade;
	}

	public void setCidade(String cidade) {
		this.cidade = cidade;
	}

	@Column(name = "Estado", length = 2)
	public String getEstado() {
		return this.estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	@Column(name = "CEP", length = 9)
	public String getCep() {
		return this.cep;
	}

	public void setCep(String cep) {
		this.cep = cep;
	}

	@Column(name = "Telefone", length = 15)
	public String getTelefone() {
		return this.telefone;
	}

	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}

	@Column(name = "Celular", length = 15)
	public String getCelular() {
		return this.celular;
	}

	public void setCelular(String celular) {
		this.celular = celular;
	}

	@Column(name = "email", length = 50)
	public String getEmail() {
		return this.email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	@Column(name = "Insc", length = 10)
	public String getInsc() {
		return this.insc;
	}

	public void setInsc(String insc) {
		this.insc = insc;
	}

	@Column(name = "CNPJ", length = 18)
	public String getCnpj() {
		return this.cnpj;
	}

	public void setCnpj(String cnpj) {
		this.cnpj = cnpj;
	}

	@Column(name = "Locacao", length = 50)
	public String getLocacao() {
		return this.locacao;
	}

	public void setLocacao(String locacao) {
		this.locacao = locacao;
	}

	@Column(name = "LocBairro", length = 30)
	public String getLocBairro() {
		return this.locBairro;
	}

	public void setLocBairro(String locBairro) {
		this.locBairro = locBairro;
	}

	@Column(name = "LocCidade", length = 30)
	public String getLocCidade() {
		return this.locCidade;
	}

	public void setLocCidade(String locCidade) {
		this.locCidade = locCidade;
	}

	@Column(name = "LocEstado", length = 2)
	public String getLocEstado() {
		return this.locEstado;
	}

	public void setLocEstado(String locEstado) {
		this.locEstado = locEstado;
	}

	@Column(name = "TELEFONE2", length = 14)
	public String getTelefone2() {
		return this.telefone2;
	}

	public void setTelefone2(String telefone2) {
		this.telefone2 = telefone2;
	}

	@Column(name = "email2", length = 50)
	public String getEmail2() {
		return this.email2;
	}

	public void setEmail2(String email2) {
		this.email2 = email2;
	}

	@Column(name = "locomplemento", length = 40)
	public String getLocomplemento() {
		return this.locomplemento;
	}

	public void setLocomplemento(String locomplemento) {
		this.locomplemento = locomplemento;
	}

	@Column(name = "tipopg")
	public Byte getTipopg() {
		return this.tipopg;
	}

	public void setTipopg(Byte tipopg) {
		this.tipopg = tipopg;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "dataalt", length = 10)
	public Date getDataalt() {
		return this.dataalt;
	}

	public void setDataalt(Date dataalt) {
		this.dataalt = dataalt;
	}

	@Column(name = "complemento", length = 40)
	public String getComplemento() {
		return this.complemento;
	}

	public void setComplemento(String complemento) {
		this.complemento = complemento;
	}

	@Column(name = "codSite")
	public Integer getCodSite() {
		return this.codSite;
	}

	public void setCodSite(Integer codSite) {
		this.codSite = codSite;
	}

	@Column(name = "cliobs", length = 65535)
	public String getCliobs() {
		return this.cliobs;
	}

	public void setCliobs(String cliobs) {
		this.cliobs = cliobs;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "clidata", length = 10)
	public Date getClidata() {
		return this.clidata;
	}

	public void setClidata(Date clidata) {
		this.clidata = clidata;
	}

	@Column(name = "LocacaoAlternativa", length = 50)
	public String getLocacaoAlternativa() {
		return this.locacaoAlternativa;
	}

	public void setLocacaoAlternativa(String locacaoAlternativa) {
		this.locacaoAlternativa = locacaoAlternativa;
	}

	@Column(name = "LocCidadeAlternativa", length = 30)
	public String getLocCidadeAlternativa() {
		return this.locCidadeAlternativa;
	}

	public void setLocCidadeAlternativa(String locCidadeAlternativa) {
		this.locCidadeAlternativa = locCidadeAlternativa;
	}

	@Column(name = "LocBairroAlternativo", length = 30)
	public String getLocBairroAlternativo() {
		return this.locBairroAlternativo;
	}

	public void setLocBairroAlternativo(String locBairroAlternativo) {
		this.locBairroAlternativo = locBairroAlternativo;
	}

	@Column(name = "LocEstadoAlternativo", length = 2)
	public String getLocEstadoAlternativo() {
		return this.locEstadoAlternativo;
	}

	public void setLocEstadoAlternativo(String locEstadoAlternativo) {
		this.locEstadoAlternativo = locEstadoAlternativo;
	}

	@Column(name = "LocCompAlternativo", length = 40)
	public String getLocCompAlternativo() {
		return this.locCompAlternativo;
	}

	public void setLocCompAlternativo(String locCompAlternativo) {
		this.locCompAlternativo = locCompAlternativo;
	}

	@Column(name = "codsindicato")
	public Integer getCodsindicato() {
		return this.codsindicato;
	}

	public void setCodsindicato(Integer codsindicato) {
		this.codsindicato = codsindicato;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((cod == null) ? 0 : cod.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Cli other = (Cli) obj;
		if (cod == null) {
			if (other.cod != null)
				return false;
		} else if (!cod.equals(other.cod))
			return false;
		return true;
	}

	
}

e minha dao

package dao;

import java.io.Serializable;
import java.util.List;
import modelo.Cli;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;

import util.HibernateUtil;

@SuppressWarnings( "serial" )
public class CliDAO implements Serializable{

	Cli cli = new Cli();
	
	private Session session; 

	//metodo de listar todos os clientes
	@SuppressWarnings("unchecked")
	public List <Cli> listar(){
		 session = HibernateUtil.getSessionFactory().openSession();
		try {
			Criteria cri = session.createCriteria(Cli.class);
					cri.addOrder(Order.asc("razao"));
					
			return cri.list();
		} finally {
		session.close();
		}
	}
	
	//metodo para buscar cliente pelo id 
	public Cli buscarCli(Integer codcliente){
		 session = HibernateUtil.getSessionFactory().openSession();
			try {
				Criteria cri = session.createCriteria(Cli.class);
						 cri.add(Restrictions.idEq(codcliente));
						 
						 return (Cli) cri.uniqueResult();
			} finally {
			session.close();
			}
	}
	
	
}

Não sei s te ajuda

no view eu chama da seguinte forma

<p:selectOneMenu id="selectonemenucliente"  value="#{aquisicaoServicosControle.aquisicao.cliente}" converter="conversorCli" >
		<f:selectItem itemLabel="Selecione um.." itemValue="" /> 
		<f:selectItems value="#{aquisicaoServicosControle.clientes}"    var="cliente" itemLabel="#{cliente.razao}" itemValue="#{cliente}"/>	 					</p:selectOneMenu>

nao utilizo o ip pq pego o obj como um todo pelo conversor

jeferson_alves

Nosso Deus, ajuda d+ já estou olhando.

jeferson_alves

sera que meu hashCode() equals esta errado, eu mandei sobrescrever..

package br.com.startup.s3.entidade;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name="contato")
public class Contato implements Serializable {
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="id_contato")
	private Integer idContato;
	
	@Column(name="nome")
	private String nome;
	
	@Column(name="email")
	private String email;
	
	@ManyToOne(targetEntity = Cliente.class)
	@JoinColumn(name="id_cliente")
	private Cliente cliente;
	
	
	
	
	public Contato() {
		
	}
	
	/////////////////////////////////////////////////

	

	public Integer getIdContato() {
		return idContato;
	}

	public void setIdContato(Integer idContato) {
		this.idContato = idContato;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((cliente == null) ? 0 : cliente.hashCode());
		result = prime * result + ((email == null) ? 0 : email.hashCode());
		result = prime * result
				+ ((idContato == null) ? 0 : idContato.hashCode());
		result = prime * result + ((nome == null) ? 0 : nome.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Contato other = (Contato) obj;
		if (cliente == null) {
			if (other.cliente != null)
				return false;
		} else if (!cliente.equals(other.cliente))
			return false;
		if (email == null) {
			if (other.email != null)
				return false;
		} else if (!email.equals(other.email))
			return false;
		if (idContato == null) {
			if (other.idContato != null)
				return false;
		} else if (!idContato.equals(other.idContato))
			return false;
		if (nome == null) {
			if (other.nome != null)
				return false;
		} else if (!nome.equals(other.nome))
			return false;
		return true;
	}
	
	
	
	

}
jeferson_alves

Luciano, tem como eu ver o seu ManagedBean?

LucianoTulio

managed bean

package controle.cadastro;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

import modelo.AquisicaoServicos;
import modelo.Cli;
import modelo.Mes;
import modelo.Usuario;

import org.primefaces.event.DateSelectEvent;

import controle.modelo.UsuarioBean;

import dao.AquisicaoServicosDAO;
import dao.CliDAO;
import dao.MesDAO;
import dao.ObrigacoesDAO;
import dao.UsuarioDAO;

@ManagedBean(name="aquisicaoServicosControle")
@SessionScoped
public class AquisicaoServicosControle {

	
	//Obj para pegar o usuario da sessao
		@ManagedProperty(value="#{usuarioBean}")  
		private UsuarioBean usuariobean;
	
	
	//listas
	private List<Integer>anos = new ArrayList<Integer>();
	private List<Mes>meses = new ArrayList<Mes>();
	private List<Cli>clientes = new ArrayList<Cli>();
	
	//obj daos 
	private CliDAO clienteDao = new CliDAO();
	private MesDAO mesDao = new MesDAO();
	private ObrigacoesDAO obrigacoesDao = new ObrigacoesDAO();
	private AquisicaoServicosDAO aquisicaoDao = new AquisicaoServicosDAO();
	//obj que vai receber 
	private AquisicaoServicos aquisicao = new AquisicaoServicos();
	
	//variavel do tipo do documento
	private String tipoDocumento = "CNPJ";
	
	private int mes=0;
	private int ano=0;
	
	
	public void getDataSistemaInicial(){
		
		GregorianCalendar calendar = new GregorianCalendar();
		this.mes = calendar.get(GregorianCalendar.MONTH)+1;
		this.ano = calendar.get(GregorianCalendar.YEAR);
	}
	@PostConstruct
	public void inicializar(){
		 getDataSistemaInicial();
		 this.anos = obrigacoesDao.listarAnos();
		 this.meses = mesDao.listar();
		 this.clientes = clienteDao.listar();
		 this.aquisicao.setAno(this.ano);
		 this.aquisicao.setMes(mesDao.buscarMesId(this.mes));
		 this.aquisicao.setEmissao(new Date());
		 this.aquisicao.setValor(0.00);
	}
  
    public void handleDateSelect(DateSelectEvent event) {  
        FacesContext facesContext = FacesContext.getCurrentInstance();  
        SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");  
        facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Data Selecionada", format.format(event.getDate())));  
    }  

    public String FormatarData(Date date ){
		if(date!=null){
    	Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		Date dataMetodo = calendar.getTime();
		DateFormat d = DateFormat.getDateInstance();
			
		return d.format(dataMetodo);
		}
		else{
			return null;
		}
	}
    
	public List<Integer> getAnos() {
		return anos;
	}

	public void setAnos(List<Integer> anos) {
		this.anos = anos;
	}

	public List<Mes> getMeses() {
		return meses;
	}

	public void setMeses(List<Mes> meses) {
		this.meses = meses;
	}

	public List<Cli> getClientes() {
		return clientes;
	}


	public void setClientes(List<Cli> clientes) {
		this.clientes = clientes;
	}

	public AquisicaoServicos getAquisicao() {
		return aquisicao;
	}

	public void setAquisicao(AquisicaoServicos aquisicao) {
		this.aquisicao = aquisicao;
		
	}

	public String getTipoDocumento() {
		return tipoDocumento;
	}

	public void setTipoDocumento(String tipoDocumento) {
		this.tipoDocumento = tipoDocumento;
	      
	}

	public String getData() {
		
		return FormatarData(this.aquisicao.getEmissao());
	}

	public void setData(Date data) {
		this.aquisicao.setEmissao(data);
	}

	public UsuarioBean getUsuariobean() {
		return usuariobean;
	}
	public void setUsuariobean(UsuarioBean usuariobean) {
		this.usuariobean = usuariobean;
	}
	public void cadastrar(ActionEvent actionEvent){
		Usuario u = new UsuarioDAO().buscarUsuario(usuariobean.getNome());
		this.aquisicao.setUsuario(u);
		this.aquisicao.setInsercao(new Date(System.currentTimeMillis()));
		aquisicaoDao.inserir(this.aquisicao);
		FacesContext context = FacesContext.getCurrentInstance();  
        context.addMessage(null, new FacesMessage("Cadastro Realizado com Sucesso"));  
	}
	 
}

e minha view

<html xmlns="http://www.w3.org/1999/xhtml"  
      xmlns:h="http://java.sun.com/jsf/html"  
      xmlns:f="http://java.sun.com/jsf/core"  
      xmlns:p="http://primefaces.org/ui"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:pe="http://primefaces.org/ui/extensions">  
  
     <h:head >  
  		<title>Cadastro de Aquisição de Serviços</title>
  		<meta http-equiv="refresh" content="#{session.maxInactiveInterval};url=./../../index.html" />
     				
  	</h:head>  
      
    <h:body style="font-size:12;background:gray">
    	<h:form>
    			<p:menubar id="menuSuperior">  
	       		
	       		<p:menuitem value="Lista de Aquisições de Serviço" action="#{menuBarControle.menuBarraListaAquisicoes()}"/>
	       		
	       		<p:menuitem value="Voltar Menu" action="#{usuarioBean.verificarUsuario}"/>
	       		
				<p:menuitem value="Sair" icon="ui-icon-close" action="#{logoutBean.efetuarLogout}"/> 
		    </p:menubar>
		
    	</h:form>
    	<h:form>
    	    
		    	<p:panel header="Cadastro de Aquisição de serviço" >
    					<p:panel header="Informações do Cliente">
 						<h:outputLabel value="Cliente:" for="selectonemenucliente" style="font-weight:bold"/>
 						<br/>
 						<p:selectOneMenu id="selectonemenucliente"  
 										 value="#{aquisicaoServicosControle.aquisicao.cliente}" converter="conversorCli" >
 							<f:selectItem itemLabel="Selecione um.." itemValue="" /> 
	 						<f:selectItems value="#{aquisicaoServicosControle.clientes}" 
 										   var="cliente" itemLabel="#{cliente.razao}" itemValue="#{cliente}"/>
	 					</p:selectOneMenu>
 						
 						<p:separator/>
 				
 						<div style="overflow:hidden;height:10%" >
 				
 							<div style="float:left;width:50%">
 								<h:outputLabel value="Razão Contratado:" for="razao_contratado" style="font-weight:bold"/>
 				 				<br/>
 				 				<p:inputText id="razao_contratado" size="50"
 									 value="#{aquisicaoServicosControle.aquisicao.contratado_razao}"/>
 							</div>
 				
 							<div style="float:left;width:50%;height:50%">
 								
 								<p:selectOneRadio id="teste" value="#{aquisicaoServicosControle.tipoDocumento}" style="font-weight:bold">    
                  					<f:selectItem itemLabel="CNPJ" itemValue="CNPJ"  />    
		                  			<f:selectItem itemLabel="CPF" itemValue="CPF" />
                  					<f:selectItem itemLabel="PIS" itemValue="PIS" />
                  					<f:selectItem itemLabel="Outros" itemValue="OUTROS" />  
                	
		                		  	<p:ajax event="change" update="mascaraTipoDocumento"/>                 
					
								</p:selectOneRadio>  
				
								<h:panelGroup id="mascaraTipoDocumento" >
  				 			
  				 					<p:inputMask value="#{aquisicaoServicosControle.aquisicao.contratado_documento}" 
  				 						 		 rendered="#{aquisicaoServicosControle.tipoDocumento eq 'CNPJ'}" 
  				 						         mask="99.999.999/9999-99" />  
   				 			
   				 					<p:inputMask value="#{aquisicaoServicosControle.aquisicao.contratado_documento}"  
   				 								 rendered="#{aquisicaoServicosControle.tipoDocumento eq 'CPF'}" 
   				 						 		 mask="[CPF removido]" />  
   				 			
   				 					<p:inputMask value="#{aquisicaoServicosControle.aquisicao.contratado_documento}"  
   				 								 rendered="#{aquisicaoServicosControle.tipoDocumento eq 'PIS'}" 
   				 						 		 mask="999.999.999-**" />  
   							
   									<p:inputMask value="#{aquisicaoServicosControle.aquisicao.contratado_documento}"  
   												 rendered="#{aquisicaoServicosControle.tipoDocumento eq 'OUTROS'}"/>  
							
								</h:panelGroup>		
 							</div>
 						
 						</div>	
 					
 					</p:panel>
 						<p:panel header="Data da Movimentação" >
 				
 						<div style="overflow:hidden">
 				
 							<div style="float:left;width:20%">
 								<h:outputText value="Ano:" style="font-weight:bold"/>
		         				<br/>
		         				<p:selectOneMenu  height="350" value="#{aquisicaoServicosControle.aquisicao.ano}" 
		         					  		      panelStyle="width:10%;height:10%"  >
				    				
									<f:selectItems value="#{aquisicaoServicosControle.anos}" var="ano" itemLabel="#{ano}" itemValue="#{ano}"/>
			       				</p:selectOneMenu> 
			            		
			           		</div>
			    
			           		<div style="float:left;width:20%">
			    
			           			<h:outputText value="Mes:" style="font-weight:bold" />
			           			<br/>
			 					<p:selectOneMenu  height="380" id="selectonemenumes"  
			    								  value="#{aquisicaoServicosControle.aquisicao.mes}" converter="conversorMes">
				   					<f:selectItems value="#{aquisicaoServicosControle.meses}" var="mes" itemLabel="#{mes.nome}" itemValue="#{mes}"/>
			            		</p:selectOneMenu>   
			    
			           		</div>
 				
 							<div style="float:left;width:50%">
 								<h:outputLabel value="Data de Emissão:" for="calendario" />
 								<br/>	
 								<p:calendar locale="pt_BR" value="#{aquisicaoServicosControle.aquisicao.emissao}" 
   				 			 				showButtonPanel="true" navigator="true" showOn="button"  />  
 								</div>
 							</div>
 				
 						</p:panel>
						<p:panel header="Informações da Nota" >
	 		
	 						<div style="overflow:hidden">
	 		
	 							<div style="float:left;width:20%">
	 								<h:outputLabel value="Numero da Nota:" for="nf_numero" style="font-weight:bold" />
	 								<br/>
 									<p:inputText id="nf_numero" size="10"  
 							  					 value="#{aquisicaoServicosControle.aquisicao.nf_numero}"/>	
	 							</div>
	 		
	 							<div style="float:left;width:50%">
	 								<h:outputLabel value="Valor:" for="valor" style="font-weight:bold" />
 						
 									<pe:inputNumber id="valor" decimalPlaces="2" roundMethod="S"  
 					 								value="#{aquisicaoServicosControle.aquisicao.valor}" 
 					 								symbol="R$  "/>		
	 							</div>
	 						
	 						</div>
	 		
	 					</p:panel>	
	 					<p:panel header="Darf's Retenções Gerados">
	 						<div style="overflow:hidden">
	 							<div style="float:left;width:16%">
	 								
 								<h:outputLabel value="IR 0561:" for="retencoes_ir_0561" style="font-weight:bold"/>
 								<p:spacer width="10" height="0" /> 
 								<pe:inputNumber id="retencoes_ir_0561" value="#{aquisicaoServicosControle.aquisicao.retencoes_ir_0561}" symbol="R$  "  
                   					            decimalPlaces="2"   required="true" requiredMessage="qual do valor?"/>  
                   				</div>
 								<div style="float:left;width:16%">
	 								<h:outputLabel value="IR 1708:" for="retencoes_ir_1708" style="font-weight:bold" />
 									<p:spacer width="10" height="0" /> 
 									<pe:inputNumber id="retencoes_ir_1708" value="#{aquisicaoServicosControle.aquisicao.retencoes_ir_1708}" symbol="R$  "  
                   					            decimalPlaces="2"   required="true" requiredMessage="qual do valor?"/>  
 								</div>
 								
 								<div style="float:left;width:16%">
	 								<h:outputLabel value="IR 3208:" for="retencoes_ir_3208" style="font-weight:bold" />
 									<p:spacer width="10" height="0" /> 
 									<pe:inputNumber id="retencoes_ir_3208" value="#{aquisicaoServicosControle.aquisicao.retencoes_ir_3208}" symbol="R$  "  
                   					 				decimalPlaces="2"  required="true" requiredMessage="qual do valor?"/>  
 							
	 							</div>
	 							<div style="float:left;width:16%">
	 								<h:outputLabel value="IR 3280:" for="retencoes_ir_3280" style="font-weight:bold"/>
 								<p:spacer width="10" height="0" /> 
 								<pe:inputNumber id="retencoes_ir_3280" value="#{aquisicaoServicosControle.aquisicao.retencoes_ir_3280}" symbol="R$  "  
                   					 			decimalPlaces="2"  required="true" requiredMessage="qual do valor?"/>  
 							
	 							</div>
	 							<div style="float:left;width:16%">
	 								<h:outputLabel value="IR 5952:" for="retencoes_ir_5952" style="font-weight:bold"/>
 								<p:spacer width="10" height="0" /> 
 								<pe:inputNumber id="retencoes_ir_5952" value="#{aquisicaoServicosControle.aquisicao.retencoes_ir_5952}" symbol="R$  "  
                   					 		    decimalPlaces="2"  required="true" requiredMessage="qual do valor?"/>  
 							
	 							</div>
	 							<div style="float:left;width:16%">
	 								<h:outputLabel value="IR 8045:" for="retencoes_ir_8045" style="font-weight:bold"/>
 								<p:spacer width="10" height="0" /> 
 								<pe:inputNumber id="retencoes_ir_8045" value="#{aquisicaoServicosControle.aquisicao.retencoes_ir_8045}" symbol="R$  "  
                   					            decimalPlaces="2"  required="true" requiredMessage="qual do valor?"/>  
 							
	 							</div>
 								
 								</div>
	 					</p:panel>
	 					<p:panel header="Outros">
	 						<div style="overflow:hidden">
	 							<div style="float:left;width:20%">
	 								<h:outputText value="Município" style="font-weight:bold" />
	 								<h:outputLabel value="ISS:" for="municipio_iss" />
 								
 									<pe:inputNumber id="municipio_iss" value="#{aquisicaoServicosControle.aquisicao.municipio_iss}"
                   									 symbol="R$  " required="true" requiredMessage="qual do valor?"/> 
	 							</div>
	 							<div style="float:left;width:20%">
	 								<h:outputText value="Previdência" style="font-weight:bold"/>
	 								<h:outputLabel value="GPS:" for="previdencia_gps" />
 									 
 									<pe:inputNumber id="previdencia_gps" value="#{aquisicaoServicosControle.aquisicao.previdencia_gps}"   
                   					 			symbol="R$  " required="true" requiredMessage="qual do valor?"/> 
	 							</div>
	 							<div style="float:left;width:60%">
	 								<h:outputText value="Observação de Envio:" style="font-weight:bold"/>
	 								<br/>
	 								<p:inputTextarea autoResize="false" maxlength="250"  rows="3" cols="70" style="resize:none"
												 value="#{aquisicaoServicosControle.aquisicao.obs_envio}"/>
	 							</div>
	 						</div>
	 					</p:panel>			  
        		
 						<div align="center">
 							<p:commandButton value="Cadastrar" label="Cadastrar" oncomplete="dlg.show()" update="display"/>
						</div>
    				</p:panel>
		 
		 	<p:dialog modal="true" width="1200" height="600" position="top" showEffect="fade" hideEffect="fade" widgetVar="dlg"
		 			  header="Confirmação de Cadastro" style="overflow:hidden" resizable="false">
			 	<p:panelGrid style="width:100%;margin-bottom:10px" id="display">
 				<f:facet name="header">
 					<p:row >
						<p:column colspan="6">Cadastro das Aquisições de Serviços</p:column>
 					</p:row>
 				</f:facet>
 				<p:row>
 					<p:column colspan="6">
 						<p:panel header="Informações do Cliente">
 						
 						<h:outputText value="Cliente:" style="font-weight:bold" />
 						<h:outputText value=" #{aquisicaoServicosControle.aquisicao.cliente.razao}" />
 						
 						<div style="overflow:hidden">
 							<div style="float:left;width:50%">
 							<h:outputText value="Razao Contratado:" style="font-weight:bold"/>
 							<h:outputText value="#{aquisicaoServicosControle.aquisicao.contratado_razao}" />
 							</div>
 							
 							<div style="float:left;width:50%;height:50%">
 								
 							<h:outputText value="#{aquisicaoServicosControle.tipoDocumento} :" style="font-weight:bold" />
 							<h:outputText value="#{aquisicaoServicosControle.aquisicao.contratado_documento}" />
 							</div>
 						
 						</div>	
 							
 				
 				
 						</p:panel>
 							
 				
 						<p:panel header="Data da Movimentação">
 							
 							<div style="overflow:hidden">
 								<div style="float:left;width:20%">
 									<h:outputText value="Ano:" style="font-weight:bold"/>
		        	 				<br/>
		        	 				<h:outputText value="#{aquisicaoServicosControle.aquisicao.ano}" />
			            			
			            		</div>
			            		<div style="float:left;width:20%">
			            			<h:outputText value="Mes:" style="font-weight:bold"/>
			            			<br/>
			 						<h:outputText value="#{aquisicaoServicosControle.aquisicao.mes.nome}" />   
			            		</div>
 								<div style="float:left;width:50%">
 									<h:outputLabel value="Data de Emissão:" for="calendariodlg" style="font-weight:bold" />
 									<br/>	
 									<p:calendar locale="pt_BR" value="#{aquisicaoServicosControle.aquisicao.emissao}" 
   						 			 				disabled="true" id="calendariodlg" />  
 								</div>
 							</div>
 						</p:panel>
						
			
	 					<p:panel header="Informações da Nota">
	 						<div style="overflow:hidden">
	 							<div style="float:left;width:20%">
	 								<h:outputLabel value="Numero da Nota:" for="nf_numerodlg" style="font-weight:bold" />
	 								<br/>
 									<h:outputText id="nf_numerodlg" value="#{aquisicaoServicosControle.aquisicao.nf_numero}" style="font-weight:bold"/>	
	 							</div>
	 							<div style="float:left;width:50%">
	 									<h:outputLabel value="Valor:" for="valordlg" style="font-weight:bold" />
 						
 										<pe:inputNumber disabled="true" id="valordlg" decimalPlaces="2" roundMethod="S" 
 						 								value="#{aquisicaoServicosControle.aquisicao.valor}" 
 						 								symbol="R$  "/>		
	 							</div>
	 						
	 						</div>
	 					</p:panel>	
	 					<p:panel header="Darf's Retenções Gerados">
	 						<div style="overflow:hidden">
	 							<div style="float:left;width:16%">
	 								
 								<h:outputLabel value="IR 0561:" for="retencoes_ir_0561dlg" style="font-weight:bold"/>
 								<p:spacer width="10" height="0" /> 
 								<pe:inputNumber id="retencoes_ir_0561dlg" value="#{aquisicaoServicosControle.aquisicao.retencoes_ir_0561}" symbol="R$  "  
                   					            decimalPlaces="2"   required="true" requiredMessage="qual do valor?" disabled="true"/>  
                   				</div>
 								<div style="float:left;width:16%">
	 								<h:outputLabel value="IR 1708:" for="retencoes_ir_1708dlg" style="font-weight:bold" />
 									<p:spacer width="10" height="0" /> 
 									<pe:inputNumber id="retencoes_ir_1708dlg" value="#{aquisicaoServicosControle.aquisicao.retencoes_ir_1708}" symbol="R$  "  
                   					            decimalPlaces="2"   required="true" requiredMessage="qual do valor?" disabled="true"/>  
 								</div>
 								
 								<div style="float:left;width:16%">
	 								<h:outputLabel value="IR 3208:" for="retencoes_ir_3208dlg" style="font-weight:bold" />
 									<p:spacer width="10" height="0" /> 
 									<pe:inputNumber id="retencoes_ir_3208dlg" value="#{aquisicaoServicosControle.aquisicao.retencoes_ir_3208}" symbol="R$  "  
                   					 				decimalPlaces="2"  required="true" requiredMessage="qual do valor?" disabled="true"/>  
 							
	 							</div>
	 							<div style="float:left;width:16%">
	 								<h:outputLabel value="IR 3280:" for="retencoes_ir_3280dlg" style="font-weight:bold" />
 								<p:spacer width="10" height="0" /> 
 								<pe:inputNumber id="retencoes_ir_3280dlg" value="#{aquisicaoServicosControle.aquisicao.retencoes_ir_3280}" symbol="R$  "  
                   					 			decimalPlaces="2"  required="true" requiredMessage="qual do valor?" disabled="true"/>  
 							
	 							</div>
	 							<div style="float:left;width:16%">
	 								<h:outputLabel value="IR 5952:" for="retencoes_ir_5952dlg" style="font-weight:bold" />
 								<p:spacer width="10" height="0" /> 
 								<pe:inputNumber id="retencoes_ir_5952dlg" value="#{aquisicaoServicosControle.aquisicao.retencoes_ir_5952}" symbol="R$  "  
                   					 		    decimalPlaces="2"  required="true" requiredMessage="qual do valor?" disabled="true"/>  
 							
	 							</div>
	 							<div style="float:left;width:16%">
	 								<h:outputLabel value="IR 8045:" for="retencoes_ir_8045dlg" style="font-weight:bold"/>
 								<p:spacer width="10" height="0" /> 
 								<pe:inputNumber id="retencoes_ir_8045dlg" value="#{aquisicaoServicosControle.aquisicao.retencoes_ir_8045}" symbol="R$  "  
                   					            decimalPlaces="2"  required="true" requiredMessage="qual do valor?" disabled="true"/>  
 							
	 							</div>
 								
 								</div>
	 					</p:panel>
	 					<p:panel header="Outros">
	 						<div style="overflow:hidden">
	 							<div style="float:left;width:20%">
	 								<h:outputText value="Município" style="font-weight:bold"/>
	 								<h:outputLabel value="ISS:" for="municipio_issdlg" />
 								
 									<pe:inputNumber id="municipio_issdlg" value="#{aquisicaoServicosControle.aquisicao.municipio_iss}"
                   									 symbol="R$  " required="true" requiredMessage="qual do valor?" disabled="true"/> 
	 							</div>
	 							<div style="float:left;width:20%">
	 								<h:outputText value="Previdência" style="font-weight:bold"/>
	 								<h:outputLabel value="GPS:" for="previdencia_gpsdlg" />
 									 
 									<pe:inputNumber id="previdencia_gpsdlg" value="#{aquisicaoServicosControle.aquisicao.previdencia_gps}"   
                   					 			symbol="R$  " required="true" requiredMessage="qual do valor?" disabled="true"/> 
	 							</div>
	 							<div style="float:left;width:60%">
	 								<h:outputText value="Observação de Envio" style="font-weight:bold"/>
	 								<br/>
	 								<p:inputTextarea autoResize="false" maxlength="250"  rows="3" cols="70" 
												 value="#{aquisicaoServicosControle.aquisicao.obs_envio}" disabled="true"/>
	 							</div>
	 						</div>
	 					</p:panel>			  
        			</p:column>
		 		</p:row>
 				<p:row>
 					<p:column colspan="6" style="align:center">
 						<div align="center">
 							<p:commandButton value="Confirmar Cadastro" label="Cadastrar" actionListener="#{aquisicaoServicosControle.cadastrar}" oncomplete="dlg.hide()" update="concluido"/>
						</div>
 									
 							</p:column>
 						</p:row>
 					</p:panelGrid>	
			 	
			 	
			 		<p:growl id="concluido"/>	 
		 	</p:dialog>
		 		
		 </h:form>
		
 			
 	</h:body>
 
</html>

sou iniciante tbm, entao tem umas coisas meio locas que vou melhorar

mas ta aee abrass

jeferson_alves

Luciano vlw muito pela ajuda, agora está tudo ok.
não usei o converter, estava precisando somente do ID para inserir com o selectOneMenu, não usei o objeto, vou colocar abaixo.

ManagedBean

private Integer selectClienteId;
//Get e set
public Integer getSelectClienteId() {
	return selectClienteId;
}


public void setSelectClienteId(Integer selectClienteId) {
			this.selectClienteId = selectClienteId;
}

//Inserir
public void inserir() throws StartupException{
			
			Cliente cliente = clienteFacade.buscarClientePelaChave(getSelectClienteId());
			contato.setCliente(cliente);
			contatoFacade.inserirContato(contato);
			
			//Mensagem Growl
			FacesContext context = FacesContext.getCurrentInstance();  
	        context.addMessage(null, new FacesMessage("contato cadastrado com sucesso! "));
	        contato = new Contato();
			
		}

XHTML

<h:outputText value="Clientes: " />  
					        <p:selectOneMenu id="cliente" value="#{contatoBean.selectClienteId}" effect="fade"  required="true">  
					            <f:selectItem itemLabel="Selecione..." itemValue="" />
					            <f:selectItems value="#{contatoBean.clientes}" var="cliente" itemLabel="#{cliente.nome}" itemValue="#{cliente.idCliente}"/>  
					        </p:selectOneMenu>

Vlw Deus abençoe

Criado 22 de outubro de 2012
Ultima resposta 26 de out. de 2012
Respostas 6
Participantes 2