JSF+Hibernate ( Erro na geração de lista no xhtml)[Resolvido]

Amigos,
Estou com o erro:

javax.servlet.ServletException: For input string: "numero" javax.faces.webapp.FacesServlet.service(FacesServlet.java:325)

Minha index:

[code]<?xml version="1.0" encoding="ISO-8859-1"?>

<h:head>

Agenda de contatos

<h:outputLabel value=“Endereço: " for=“logradouro” />
<h:inputText id=“logradouro” value=”#{pessoaBean.endereco.logradouro}"/>

<h:outputLabel value=“Complemento: " for=“complemento”/>
<h:inputText id=“complemento” value=”#{pessoaBean.endereco.complemento}"/>

<h:outputLabel value=“Bairro: " for=“bairro”/>
<h:inputText id=“bairro” value=”#{pessoaBean.endereco.bairro}"/>

<h:outputLabel value=“CEP: " for=“cep”/>
<h:inputText id=“cep” value=”#{pessoaBean.endereco.cep}"/>

<h:outputLabel value="(DDD): " for=“ddd”/>
<h:inputText id=“ddd” value="#{pessoaBean.telefone.ddd}"/>

<h:outputLabel value=“Telefone: " for=“telefone”/>
<h:inputText id=“telefone” value=”#{pessoaBean.telefone.numero}"/>

<h:commandButton value=“Gravar” action="#{pessoaBean.grava}"/>

</h:panelGrid>
</h:form>
<h:form>
<h:panelGrid columns=“2”>

<h:dataTable value="#{pessoaBean.telefones}" var=“telefones”>
</h:dataTable>

<h:dataTable value="#{pessoaBean.pessoas}" var=“pessoa”>
<h:column>
<f:facet name=“header”>Nome</f:facet>
#{pessoa.nome}
</h:column>
<h:column>
<f:facet name=“header”>Telefone</f:facet>
#{pessoa.telefone.numero}
</h:column>
<h:column>
<h:commandLink value=“Alterar”>
<f:setPropertyActionListener value="#{pessoa}" target="#{pessoaBean.pessoa}"/>
</h:commandLink>
</h:column>
</h:dataTable>

</h:panelGrid>

</h:form>

[/code]

Classe Pessoa:

[code]package com.souza.modelo;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;

@Entity
public class Pessoa {

@Id
@GeneratedValue
@Column(name = "id_pessoa")
private Integer id;
private String nome;


@OneToMany(fetch = FetchType.LAZY, mappedBy = "pessoa", targetEntity = Endereco.class)
private List<Endereco> endereco;


@OneToMany(fetch = FetchType.LAZY, mappedBy = "pessoa", targetEntity = Telefone.class)
private List<Telefone> telefone;


public Integer getId() {
	return id;
}

public void setId(Integer id) {
	this.id = id;
}

public String getNome() {
	return nome;
}

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

public List<Endereco> getEndereco() {
	return endereco;
}

public void setEndereco(List<Endereco> end1) {
	this.endereco = end1;
}

public List<Telefone> getTelefone() {
	return telefone;
}

public void setTelefone(List<Telefone> tel1) {
	this.telefone = tel1;
}

}
[/code]

Classe Telefone:

[code]package com.souza.modelo;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

@Entity
public class Telefone {

@Id
@GeneratedValue
@Column(name="id_tel")
private Integer idTel;
private Integer ddd;
private Integer numero;

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="id_pessoa", referencedColumnName = "id_pessoa")
private Pessoa pessoa;

public Integer getIdTel() {
	return idTel;
}

public void setIdTel(Integer idTel) {
	this.idTel = idTel;
}

public Integer getDdd() {
	return ddd;
}

public void setDdd(Integer ddd) {
	this.ddd = ddd;
}

public Integer getNumero() {
	return numero;
}

public void setNumero(Integer numero) {
	this.numero = numero;
}

public Pessoa getPessoa() {
	return pessoa;
}

public void setPessoa(Pessoa pessoa) {
	this.pessoa = pessoa;
}

}
[/code]

Alguem pode me ajudar no JSFL?

Abraços

É JSF e não JSFL.

Você está enviando qual valor para numero?

Eita Hebert… é serio que vai percorrer o texto todo e ver se tem algum erro de português também?
Segundo post, e ao invés de me ajudar, manda um link de seu próprio blog e fala de um outro “erro”…poderia me ajudar no problema que estou falando?

O valor que estou enviando para número é o número do telefone, um integer. OK? Peço a gentileza de me ajudar neste erro e desconsidere os erros de portuga.

Abraço

[quote=raffamz]Eita Hebert… é serio que vai percorrer o texto todo e ver se tem algum erro de português também?
Segundo post, e ao invés de me ajudar, manda um link de seu próprio blog e fala de um outro “erro”…poderia me ajudar no problema que estou falando?

O valor que estou enviando para número é o número do telefone, um integer. OK? Peço a gentileza de me ajudar neste erro e desconsidere os erros de portuga.

Abraço[/quote]Que link? C ta falando de que?
Bem, se tu quer ofender fique a vontade. Boa sorte.

Ofendi não bonitão! Entendeu desta forma? Que pena!
Este fórum é para ajuda,certo? Então, sim, preciso de ajuda!
Percebi que não tem como me ajudar! Então, nem sei porque entrou aqui… …francamente!

Abraço

Tenha o mínimo de educação e bom senso, raffamz. Ele não corrigiu nenhum erro gramatical da nossa língua, e sim o nome correto da tecnologia utilizada. Você quer a resposta pronta? Foi o que percebi com você dizendo que em outro post o Herbert te passou um link para você visualizar. Se você não ajudar, não ajudaremos.

E agora responda: Qual valor está passando ?

Marcelo, estou tendo educação! Desculpe se não pode perceber! Se visualizar meus outros post’s vai ver que não procuro respostas prontas. Desculpe novamente!
O que recebi no link que disse foi sim, uma resposta mal criada, mas enfim…deixarei isso de lado, pois acredita que o povo que sabe não pode ser arrogante, então relevo o amigão ae…já até mandei IM para ele. Então fica de boa, que não tem nada a ver com educação. Peço a gentileza de deixar isso de lado entre eu e o amigo.

O valor que está sendo passado é um integer, recuperado pela index, que seria o número do telefone.

Abraço

Faça o seguinte, ao invés de tentar passar o int passe uma string. Provavelmente o teu campo está esperando uma String e está disparando o erro.

Então Marcelão,

Já fiz isso, mas não funfa…Coloquei o atributo numero da minha classe modelo tipado como String…

rapaz. Kd o converter ???
vc não criou!
use um converter no teu input que vai funcionar.



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;


@FacesConverter(value="numberConverter")
public class NumberConverter implements Converter{

	@Override
	public Object getAsObject(FacesContext context, UIComponent component,
			String value) {
		if(value == null || value.isEmpty()){
			throw new ConverterException("erro double vazio/nulo");
		}

		value = value.replaceAll(",", ".");
		Double dValue = 0.0;

		try{
			dValue = Double.valueOf(value);
		}catch(Exception e){
			throw new ConverterException("erro double parse");
		}
		
		return dValue;
	}

	@Override
	public String getAsString(FacesContext context, UIComponent component,
			Object value) {
		return value == null? "" : value.toString();
	}

}

Mas d34d_d3v1l !
Isso só acontece quando navego na EL do JSF do Pessoa para o telefone…
Onde eu colocaria esta classe? agora fiquei confuso!rs
me ajuda?

[quote=raffamz]Mas d34d_d3v1l !
Isso só acontece quando navego na EL do JSF do Pessoa para o telefone…
Onde eu colocaria esta classe? agora fiquei confuso!rs
me ajuda?[/quote]

kd o backing bean ae?
abraços

Cara, to boiando! O que seria isso?
Abraço

Seria teu Managed Bean. Quem é ele?

Meu managebeans é o PessoaBean:

[code]package com.souza.mb;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import com.souza.dao.DAO;
import com.souza.modelo.Endereco;
import com.souza.modelo.Pessoa;
import com.souza.modelo.Telefone;

@ViewScoped
@ManagedBean
public class PessoaBean {

private Pessoa pessoa = new Pessoa();
private Telefone telefone = new Telefone();
private Endereco endereco = new Endereco();
private List<Pessoa> pessoas;
private List<Telefone> telefones;

public Pessoa getPessoa() {
	return pessoa;
}

public Telefone getTelefone() {
	return telefone;
}

public Endereco getEndereco() {
	return endereco;
}

public void grava() {
	DAO<Pessoa> dao = new DAO<Pessoa>(Pessoa.class);
	DAO<Telefone> daoT = new DAO<Telefone>(Telefone.class);
	DAO<Endereco> daoE = new DAO<Endereco>(Endereco.class);
	
	if(pessoa.getId()==null){
	dao.adiciona(pessoa);
	daoE.adiciona(endereco);
	daoT.adiciona(telefone);
	}else{
		dao.atualiza(pessoa);
		daoE.atualiza(endereco);
		daoT.atualiza(telefone);
	}
	this.pessoa = new Pessoa();
	this.endereco = new Endereco();
	this.telefone = new Telefone();

	this.pessoas = dao.listaTodos();
	this.telefones = daoT.listaTodos();

}

public List<Pessoa> getPessoas() {
	if (pessoas == null) {
		System.out.println("Carregando dados...");
		pessoas = new DAO<Pessoa>(Pessoa.class).listaTodos();
	/*	telefones= new DAO<Telefone>(Telefone.class).listaTodos();
		getTelefones();*/
			}
	return pessoas;
}

public List<Telefone> getTelefones() {
	if (telefones == null) {
		System.out.println("Carregando telefones...");
		telefones = new DAO<Telefone>(Telefone.class).listaTodos();
	}
	return telefones;
}

public void remove(Pessoa pessoa) {
	DAO<Pessoa> dao = new DAO<Pessoa>(Pessoa.class);
	dao.remove(pessoa);
	this.pessoas = dao.listaTodos();
}

public void setPessoa(Pessoa pessoa) {
	this.pessoa = pessoa;
}

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

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

}
[/code]