Alimentar obejto com dois ou mais telefones

0 respostas
leomorais

Pessoal,

Estou com o seguinte problema no jsf...
Tenho uma classe Cliente que tem uma lista de telefones e tbm tenho um form com duas opções de telefone.. o problema é que eu tenho que passar esses dois telefones lá pro meu objeto cliente no meu managedBean. Como posso fazer isso ?

Formulario jsf

<a4j:form id="formcliente">
			
			<h:outputLabel value="Nome: " for="nome" />
			&nbsp;
			<h:inputText value="#{clientebean.cliente.nome}" id="nome" size="80" style="border: 1px solid #ccc; " required="true" requiredMessage="COLOQUE O NOME"/>
			<br/><br/>
			<h:outputLabel value="RG: " for="rg" />
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			<h:inputText value="#{clientebean.cliente.rg}" id="rg" style="border: 1px solid #ccc; "/>
			&nbsp;&nbsp;&nbsp;
			<h:outputLabel value="Orgao RG: " for="exprg" />
			&nbsp;
			<h:inputText value="#{clientebean.cliente.exprg}" id="exprg" style="border: 1px solid #ccc; "/>
			<br/><br/>
			<h:outputLabel value="Email: " for="mail" />
			&nbsp;
			<h:inputText value="#{clientebean.cliente.email}" id="mail" style="border: 1px solid #ccc; "/>
			&nbsp;&nbsp;&nbsp;
			<h:outputLabel value="Logradouro: " for="logradouro" />
			&nbsp;
			<h:inputText value="#{clientebean.cliente.endereco.logradouro}" id="logradouro" size="45" style="border: 1px solid #ccc; "/>
			<br/><br/>
			<h:outputLabel value="Numero: " for="num" />
			&nbsp;
			<h:inputText value="#{clientebean.cliente.endereco.numero}" id="num" style="border: 1px solid #ccc; "/>
			&nbsp;&nbsp;&nbsp;
			<h:outputLabel value="Complemento: " for="complemento" />
			&nbsp;
			<h:inputText value="#{clientebean.cliente.endereco.complemento}" id="complemento" style="border: 1px solid #ccc; "/>
			<br/><br/>
			<h:outputLabel value="Bairro: " for="bairro" />
			&nbsp;
			<h:inputText value="#{clientebean.cliente.endereco.bairro}" id="bairro" style="border: 1px solid #ccc; "/>
			&nbsp;&nbsp;&nbsp;
			<h:outputLabel value="Cidade: " for="cidade" />
			&nbsp;
			<h:inputText value="#{clientebean.cliente.endereco.cidade}" id="cidade" style="border: 1px solid #ccc; "/>
			&nbsp;&nbsp;&nbsp;
			<h:outputLabel value="UF: " for="uf" />
			&nbsp;
			<h:inputText value="#{clientebean.cliente.endereco.uf}" id="uf" style="border: 1px solid #ccc; "/>
			<br/><br/>
			<h:outputLabel value="CEP: " for="cep" />
			&nbsp;
			<h:inputText value="#{clientebean.cliente.endereco.cep}" id="cep" style="border: 1px solid #ccc; "/>
			&nbsp;&nbsp;&nbsp;
			<h:outputLabel value="Numero Tel: " for="tel" />
			&nbsp;
			<h:inputText value="#{clientebean.cliente.telefone.numero}" size="15" id="tel" style="border: 1px solid #ccc; "/>
			&nbsp;&nbsp;&nbsp;
			<h:outputLabel value="Tipo: " for="tipotel" />
			&nbsp;
			<h:inputText value="#{clientebean.cliente.telefone.tipo}" id="tipotel" style="border: 1px solid #ccc; "/>
			<br/><br/>
			<h:outputLabel value="Numero Tel: " for="tel2" />
			&nbsp;
			<h:inputText value="#{clientebean.cliente.telefone.numero}" id="tel2" style="border: 1px solid #ccc; "/>
			&nbsp;&nbsp;&nbsp;
			<h:outputLabel value="Tipo tel: " for="tipotel2" />
			&nbsp;
			<h:inputText value="#{clientebean.cliente.telefone.tipo}" id="tipotel2" style="border: 1px solid #ccc; "/>
			<br/><br/><br/>
			<h:commandButton value="CADASTAR CLIENTE" action="#{clientebean.cadastrar}" style="border: 1px solid #006699; background-color: #fff; color: #006699; font-family: verdana; font-weight:bolder; font-size: 10px;"/>
			&nbsp;&nbsp;
			<h:commandButton value="LIMPAR FORMULARIO" type="reset" style="border: 1px solid #006699; background-color: #fff; color: #006699; font-family: verdana; font-weight:bolder; font-size: 10px;"/>
			<br/>
			<h:messages/>
			</a4j:form>

Classe Cliente (Model)

package br.com.sisexpress.entity;

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

import javax.persistence.*;

@SuppressWarnings("serial")
@Entity
@Table(name = "tbl_cliente")
public class Cliente implements Serializable{

	@Id
	@Column
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Long idcliente;

	@Column
	private String nome;

	@Column
	private String rg;

	@Column
	private String exprg;

	@Column
	private String email;

	@OneToOne(cascade=CascadeType.ALL)
	@JoinColumn(name="id_endereco")
	private Endereco endereco;

	@ManyToMany(cascade=CascadeType.PERSIST)
	@JoinTable(
			name="tbl_cliente_tel",
			joinColumns=@JoinColumn(name="id_cliente"),
			inverseJoinColumns=@JoinColumn(name="id_telefone")
	)
	private List<Telefone> telefones;

	
	public Cliente() {
	}
        
        // ...

ClienteBean

package br.com.sisexpress.managedbean;

import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import br.com.sisexpress.entity.*;
import br.com.sisexpress.persistence.HibernateDAO;

@ManagedBean(name = "clientebean")
@RequestScoped
public class ClienteBean {

	private Cliente cliente;
	private List<Telefone> telefones = new ArrayList<Telefone>();
	
	
	
	public ClienteBean() {

		cliente = new Cliente();
		cliente.setEndereco(new Endereco());
		//cliente.setTelefone(telefones);
						
	}

	public List<Telefone> getTelefones() {
		return telefones;
	}

	public void setTelefones(List<Telefone> telefones) {
		this.telefones = telefones;
	}

	

	public void cadastrar() {

		FacesContext context = FacesContext.getCurrentInstance();
		FacesMessage mensagem;

		try {
	
			//salva o cliente no bd
			new HibernateDAO<Cliente>(Cliente.class).salvar(cliente);
			mensagem = new FacesMessage("Cliente Cadastrado com Sucesso !");
			// new Cliente();

		} catch (Exception e) {
			mensagem = new FacesMessage(e.getMessage());
		}

		// adiciona a mensagem em <h:messages>
		context.addMessage("formcliente", mensagem);
	}

	public Cliente getCliente() {
		return cliente;
	}

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

	
}
Criado 15 de fevereiro de 2011
Respostas 0
Participantes 1