JSF - O jsp não está enviando parâmetro para o managed-bean

4 respostas
R

Bom dia,

Não estou conseguindo pegar os dados de E-mail vindos da minha view para o management bean.
Os outros atributos, como nome e cpfcnpj eu consigo pegar perfeitamente.

Alguém tem alguma idéia do que seja?

<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@taglib
	uri="http://java.sun.com/jsf/html" prefix="h"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Incluir Visitante</title>
</head>
<body>
<f:view>
	<h:form>
	<h:outputText value="Cadastro de Visitantes"></h:outputText>
	<br>
	Nome   <h:inputText value="#{MgrVisitante.visitante.nome}" style="width: 238px"></h:inputText><br>
	Email  <h:inputText value="[color=yellow]#{MgrVisitante.visitante.email}[/color]" style="width: 238px"></h:inputText><br>
	CPF <h:inputText value="#{MgrVisitante.visitante.cpfcnpj}" style="width: 103px"></h:inputText><br>
	Data Parceria   <h:inputText value="#{MgrVisitante.visitante.dataParceria}" style="width: 238px"></h:inputText><br>Representante <h:inputText value="#{MgrVisitante.visitante.email}" style="width: 236px"></h:inputText><br>
	Data Cadastro <h:inputText value="#{MgrVisitante.visitante.dataCadastro}" style="width: 103px"></h:inputText><br>
	Data de Nascimento <h:inputText value="#{MgrVisitante.visitante.dataNascimento}" style="width: 103px"></h:inputText></br>
	Profissão 		   <h:inputText value="#{MgrVisitante.visitante.profissao}" style="width: 217px"></h:inputText></br>
	Recebe Informativo <h:inputText value="#{MgrVisitante.visitante.recebeInformativo}" style="width: 96px"></h:inputText><br>Ativo <h:inputText value="#{MgrVisitante.visitante.recebeInformativo}" style="width: 96px"></h:inputText></br>
	
	Logradouro  <h:inputText value="#{MgrVisitante.endereco.logradouro}" style="width: 307px"></h:inputText><br>
	Número 		<h:inputText value="#{MgrVisitante.endereco.numero}" style="width: 104px"></h:inputText><br>
	Complemento <h:inputText value="#{MgrVisitante.endereco.complemento}" style="width: 259px"></h:inputText><br>
	CEP 		<h:inputText value="#{MgrVisitante.endereco.cep}" style="width: 109px"></h:inputText><br>
	Cidade  	<h:inputText value="#{MgrVisitante.endereco.cidade}"></h:inputText><br>
	UF 			<h:inputText value="#{MgrVisitante.endereco.uf}" style="width: 38px"></h:inputText><br><br>

    DDD      <h:inputText value="#{telefone.ddd}"></h:inputText><br>  
    Numero   <h:inputText value="#{telefone.numero}"></h:inputText><br>  
    Tipo     <h:inputText value="#{telefone.tipo}"></h:inputText><br><br></br>

    <h:commandButton value="addVisitante" action="#{MgrVisitante.addVisitante}"/>

    </h:form>

</f:view>
</body>
</html>
package domain;

import java.util.Vector;

public class Pessoa implements java.io.Serializable{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String email;
	private Endereco endereco;
	private String nome;
	private String representante;
	private String cpfcnpj;
	private String dataParceria;
	private int idPessoa;
	@SuppressWarnings("unchecked")
	private Vector telefones;
	
	public Pessoa() {

	}

	public String getNome() {
		return nome;
	}
	
	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public String getRepresentante() {
		return representante;
	}
	
	public void setRepresentante(String representante) {
		this.representante = representante;
	}
	
	public String getCpfcnpj() {
		return cpfcnpj;
	}
	
	public void setCpfcnpj(String cpfcnpj) {
		this.cpfcnpj = cpfcnpj;
	}
	
	public String getDataParceria() {
		return dataParceria;
	}

	public void setDataParceria(String dataParceria) {
		this.dataParceria = dataParceria;
	}
	
	public int getIdPessoa() {
		return idPessoa;
	}
	
	public void setIdPessoa(int idPessoa) {
		this.idPessoa = idPessoa;
	}

	public Endereco getEndereco() {
		return endereco;
	}

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

	@SuppressWarnings("unchecked")
	public Vector getTelefones() {
		return (Vector)telefones.clone();
	}

	@SuppressWarnings("unchecked")
	public void setTelefones(Vector telefones) {
		this.telefones = telefones;
	}
	
    @SuppressWarnings("unchecked")
	public void addTelefone(Telefone telefone){
        if (!this.telefones.contains(telefone)){
            this.telefones.add(telefone);
        }
    }
    
    public void removeTelefone(Telefone telefone){
        if (this.telefones.contains(telefone)){
            this.telefones.remove(telefone);
        }
    }
    
    public Telefone findTelefoneById(int idPessoa){
        Telefone telefone = null;
        for(int i=0; i<this.telefones.size(); i++){
            if (((Telefone)this.telefones.get(i)).getIdPessoa()==idPessoa){
                telefone = (Telefone)this.telefones.get(i);
                break;
            }
        }
        return telefone;
    }

	public String getEmail() {
		return email;
	}

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

public class Visitante extends Pessoa implements java.io.Serializable{

	private static final long serialVersionUID = 1L;
	private int idVisitante;
	private String dataNascimento;
	private Boolean ativo;
	private String dataCadastro;
	private Boolean recebeInformativo;
	private String profissao;
	
	public Visitante() {

	}
	
	public String getDataNascimento() {
		return dataNascimento;
	}
	
	public void setDataNascimento(String dataNascimento) {
		this.dataNascimento = dataNascimento;
	}
	
	public Boolean getAtivo() {
		return ativo;
	}
	
	public void setAtivo(Boolean ativo) {
		this.ativo = ativo;
	}
	
	public String getDataCadastro() {
		return dataCadastro;
	}
	
	public void setDataCadastro(String dataCadastro) {
		this.dataCadastro = dataCadastro;
	}
	
	public Boolean getRecebeInformativo() {
		return recebeInformativo;
	}
	
	public void setRecebeInformativo(Boolean recebeInformativo) {
		this.recebeInformativo = recebeInformativo;
	}
	
	public String getProfissao() {
		return profissao;
	}
	
	public void setProfissao(String profissao) {
		this.profissao = profissao;
	}

	public int getIdVisitante() {
		return idVisitante;
	}

	public void setIdVisitante(int idVisitante) {
		this.idVisitante = idVisitante;
	}
}
package application;
import java.sql.SQLException;
import java.util.Vector;
import domain.Endereco;
import domain.Telefone;
import domain.Visitante;
import repository.DAOPessoa;
import repository.DAOVisitante;

public class MgrVisitante {
	
	private Endereco endereco;
	private Visitante visitante;
	private Telefone telefone;
	private Vector telefones;

	public MgrVisitante(){
		endereco = new Endereco();
		visitante = new Visitante();
		telefone = new Telefone();
		telefones = new Vector();
	}
	public Endereco getEndereco() {
		return endereco;
	}
	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}
	public Visitante getVisitante() {
		return visitante;
	}
	public void setVisitante(Visitante visitante) {
		this.visitante = visitante;
	}
	public Telefone getTelefone() {
		return telefone;
	}
	public void setTelefone(Telefone telefone) {
		this.telefone = telefone;
	}
	public Vector getTelefones() {
		return telefones;
	}
	public void setTelefones(Vector telefones) {
		this.telefones = telefones;
		this.telefones.add(telefone);
	}
	
	public String addVisitante() throws SQLException {
		String action = null;
		DAOPessoa daoPessoa = new DAOPessoa();

		System.out.println("nome "+visitante.getNome());
		System.out.println("email "+visitante.getEmail());
		
		if (visitante.getNome().trim().length()>2  
				&& visitante.getEmail().trim().length()>5
				) {  
			
			if (daoPessoa.getIdPessoa(visitante.getEmail())>0) {
				action = "addActionFalseEmail";
			}
			
			action = "addActionTrue"; 
			
			//DAOVisitante daoVisitante = new DAOVisitante();
			//daoVisitante.Save(visitante, endereco, telefones);
		}  
		else action = "addActionFalse";  
		return action;  
	}
}
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
    version="1.2">
	<managed-bean>
		<managed-bean-name>
		pessoaManager</managed-bean-name>
		<managed-bean-class>
		application.PessoaManager</managed-bean-class>
		<managed-bean-scope>
		session</managed-bean-scope>
	</managed-bean>
	<managed-bean>
		<managed-bean-name>
		loginBean</managed-bean-name>
		<managed-bean-class>
		login.LoginBean</managed-bean-class>
		<managed-bean-scope>
		session</managed-bean-scope>
	</managed-bean>
		
<validator>
		<display-name>
		Validate Password</display-name>
		<validator-id>
		login.validatePassword</validator-id>
		<validator-class>
		login.validatePassword</validator-class>
	</validator>
	<managed-bean>
		<managed-bean-name>
		visitante</managed-bean-name>
		<managed-bean-class>
		domain.Visitante</managed-bean-class>
		<managed-bean-scope>
		session</managed-bean-scope>
	</managed-bean>
	<managed-bean>
	<managed-bean-name>
		telefone</managed-bean-name>
		<managed-bean-class>
		domain.Telefone</managed-bean-class>
		<managed-bean-scope>
		session</managed-bean-scope>
	</managed-bean>
	<managed-bean>
	<managed-bean-name>
		endereco</managed-bean-name>
		<managed-bean-class>
		domain.Endereco</managed-bean-class>
		<managed-bean-scope>
		session</managed-bean-scope>
	</managed-bean>	
	<navigation-rule>
		<display-name>
		/cadastro/cadastro</display-name>
		<from-view-id>/cadastro/cadastro.jsp</from-view-id>
		<navigation-case>
			<from-outcome>addSuccess</from-outcome>
			<to-view-id>/cadastro/success.jsp</to-view-id>
		</navigation-case>
		<navigation-case>
			<from-outcome>addFail</from-outcome>
			<to-view-id>/cadastro/error.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>
	<navigation-rule>
		<display-name>
		/login/login</display-name>
		<from-view-id>/login/login.jsp</from-view-id>
		<navigation-case>
			<from-outcome>login</from-outcome>
			<to-view-id>/login/welcome.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>
	<navigation-rule>
		<display-name>
		visitante/visitante</display-name>
		<from-view-id>/visitante/visitante.jsp</from-view-id>
		<navigation-case>
			<from-outcome>addActionTrue</from-outcome>
			<to-view-id>/visitante/ok.jsp</to-view-id>
		</navigation-case>
		<navigation-case>
			<from-outcome>addActionFalse</from-outcome>
			<to-view-id>/visitante/erro.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>
	<navigation-rule>
		<display-name>
		visitante/visitante</display-name>
		<from-view-id>
		/visitante/visitante.jsp</from-view-id>
		<navigation-case>
			<from-outcome>addActionFalseEmail</from-outcome>
			<to-view-id>
			/visitante/emailJaCadastrado.jsp</to-view-id>
		</navigation-case>
	</navigation-rule><managed-bean>
		<managed-bean-name>MgrVisitante</managed-bean-name>
		<managed-bean-class>application.MgrVisitante</managed-bean-class>
		<managed-bean-scope>
		request</managed-bean-scope>
	</managed-bean>
</faces-config>

4 Respostas

rafagil

Esse “[color=yellow]” Tá no seu código ou soh apareceu aqui no forum?

afamorim

Acredito que você esteja sobrescrevendo o valor com vaio nesse bloco de codigo

Nome   &lt;h:inputText value="#{MgrVisitante.visitante.nome}" style="width: 238px"&gt;&lt;/h:inputText&gt;<br>   
    Email  &lt;h:inputText value="[color=yellow]#{MgrVisitante.visitante.email}[/color]" style="width: 238px"&gt;&lt;/h:inputText&gt;<br>   
    CPF &lt;h:inputText value="#{MgrVisitante.visitante.cpfcnpj}" style="width: 103px"&gt;&lt;/h:inputText&gt;<br>   
    Data Parceria   &lt;h:inputText value="#{MgrVisitante.visitante.dataParceria}" style="width: 238px"&gt;&lt;/h:inputText&gt;<br>Representante &lt;h:inputText value="#{MgrVisitante.visitante.email}" style="width: 236px"&gt;&lt;/h:inputText&gt;<br>

observer o intputext de representante…
8)

spycall

Tem 2 inputs referenciando o mesmo atributo da MB

<h:inputText value="#{MgrVisitante.visitante.email}"/>

Email e Representante

R

Pois é… esse tal de copy e paste…

Obrigado gente!!!

Criado 11 de março de 2008
Ultima resposta 11 de mar. de 2008
Respostas 4
Participantes 4