Ola pessoal, ja faz um mes e eu nao consigo usar isso, favor de alguem soube me ajuda.
Meu codigo vou postar para facilitar o entendimento: tenho um formulario de cadastro e outro que imprimi os dados no ListaDataModel
Formulario de Cadastro Pessoa, imagina que eu cliquei no botao Imprimir
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt"%>
<f:view>
<html>
<head>
<title>Loca- Cadastro Pessoa</title>
</head>
<body>
<h:form>
<h:outputLabel value="Cadastro Pessoa" style="FONT-WEIGHT: bold;" /> /
<h:outputLink
value="#{facesContext.externalContext.requestContextPath}/pages/cadastro.jsf">
<f:verbatim>Cadastro</f:verbatim>
</h:outputLink> /
<h:outputLink
value="#{facesContext.externalContext.requestContextPath}/pages/login.jsf">
<f:verbatim>Logout</f:verbatim>
</h:outputLink>
<br>
<br>
<h:commandButton action="#{pessoaMB.novoPessoaMB}" value="Novo" immediate="true" onchange="submit"/>
<h:commandButton action="#{pessoaMB.salvarPessoaMB}" value="Salvar"/>
<h:commandButton action="#{pessoaMB.excluirPessoaMB}" value="Excluir" />
<h:commandButton action="#{pessoaMB.imprimirPessoaMB}" value="Imprimir"/>
<br>
<h:messages/>
<h:inputHidden value="#{pessoaMB.mbIdPessoaFisica}"/>
<fieldset>
<legend>Dados do Pessoa</legend>
<h:panelGrid columns="2" width="60%">
<h:outputLabel value="Codigo Reduzido:" />
<h:inputText value="#{pessoaMB.mbCodReduzido}"/>
<h:outputLabel value="Codigo Alternativo:" />
<h:inputText value="#{pessoaMB.mbCodAlternativo}"/>
<h:outputLabel value="Nome Completo:" />
<h:inputText value="#{pessoaMB.mbNomeCompleto}" style="width : 400px;"/>
<h:outputLabel value="Data Nascimento:" />
<h:inputText value="#{pessoaMB.mbDataNasc}">
<f:convertDateTime pattern="dd/MM/yyyy"/>
</h:inputText>
<h:outputLabel value="Sexo:" />
<h:selectOneMenu value="#{pessoaMB.mbSexo}">
<f:selectItem itemLabel="M" itemValue="M"/>
<f:selectItem itemLabel="F" itemValue="F"/>
</h:selectOneMenu>
<h:outputLabel value="RG" />
<h:inputText value="#{pessoaMB.mbRg}" style="width : 240px;"/>
<h:outputLabel value="CPF:" />
<h:inputText value="#{pessoaMB.mbCpf}" style="width : 240px;"/>
<h:outputLabel value="E-mail:" />
<h:inputText value="#{pessoaMB.mbEmail}" style="width : 240px;"/>
<h:outputLabel value="Endereço:" />
<h:inputText value="#{pessoaMB.mbEndereco}" style="width : 400px;"/>
<h:outputLabel value="Numero:" />
<h:inputText value="#{pessoaMB.mbNumero}"/>
<h:outputLabel value="Bairro:" />
<h:inputText value="#{pessoaMB.mbBairro}" style="width : 240px;"/>
<h:outputLabel value="Cidade:" />
<h:inputText value="#{pessoaMB.mbCidade}" style="width : 400px;"/>
<h:outputLabel value="Estado:" />
<h:selectOneMenu value="#{pessoaMB.mbEstado}">
<f:selectItem itemLabel="SP" itemValue="SP"/>
<f:selectItem itemLabel="AC" itemValue="AC"/>
<f:selectItem itemLabel="AL" itemValue="AL"/>
<f:selectItem itemLabel="AM" itemValue="AM"/>
<f:selectItem itemLabel="AP" itemValue="AP"/>
<f:selectItem itemLabel="BA" itemValue="BA"/>
<f:selectItem itemLabel="CE" itemValue="CE"/>
<f:selectItem itemLabel="DF" itemValue="DF"/>
<f:selectItem itemLabel="ES" itemValue="ES"/>
<f:selectItem itemLabel="GO" itemValue="GO"/>
<f:selectItem itemLabel="MA" itemValue="MA"/>
<f:selectItem itemLabel="GM" itemValue="GM"/>
<f:selectItem itemLabel="MS" itemValue="MS"/>
<f:selectItem itemLabel="MT" itemValue="MT"/>
<f:selectItem itemLabel="PA" itemValue="PA"/>
<f:selectItem itemLabel="PB" itemValue="PB"/>
<f:selectItem itemLabel="PE" itemValue="PE"/>
<f:selectItem itemLabel="PI" itemValue="PI"/>
<f:selectItem itemLabel="PR" itemValue="PR"/>
<f:selectItem itemLabel="RJ" itemValue="RJ"/>
<f:selectItem itemLabel="RN" itemValue="RN"/>
<f:selectItem itemLabel="RO" itemValue="RO"/>
<f:selectItem itemLabel="RR" itemValue="RR"/>
<f:selectItem itemLabel="RS" itemValue="RS"/>
<f:selectItem itemLabel="SC" itemValue="SC"/>
<f:selectItem itemLabel="SE" itemValue="SE"/>
<f:selectItem itemLabel="TO" itemValue="TO"/>
</h:selectOneMenu>
<h:outputLabel value="CEP:" />
<h:inputText value="#{pessoaMB.mbCep}"/>
</h:panelGrid>
</fieldset>
<fieldset>
<legend>Dados do Usuario</legend>
<h:panelGrid columns="2" width="50%" style=" width : 666px;">
<h:panelGroup>
<h:outputText value="Primeiro Cadastro:" />
<h:inputText value="#{pessoaMB.mbFuncCadPor}" />
</h:panelGroup>
<h:panelGroup>
<h:outputText value="Data Primeiro Cadastro:" />
<h:inputText value="#{pessoaMB.mbFuncCadData}" >
<f:convertDateTime pattern="dd/MM/yyyy"/>
</h:inputText>
</h:panelGroup>
<h:panelGroup>
<h:outputText value="Alterou Cadastro:" />
<h:inputText value="#{pessoaMB.mbFuncAltPor}" />
</h:panelGroup>
<h:panelGroup>
<h:outputText value="Data Alterou Cadastro:" />
<h:inputText value="#{pessoaMB.mbFuncAltData}">
<f:convertDateTime pattern="dd/MM/yyyy"/>
</h:inputText>
</h:panelGroup>
</h:panelGrid>
</fieldset>
<fieldset>
<legend>Retenção Impostos</legend>
<h:panelGrid columns="2" width="30%" style=" width : 240px;">
<h:outputLabel value="INSS %" />
<h:inputText value="#{pessoaMB.mbInss}" />
<h:outputLabel value="ISS %" />
<h:inputText value="#{pessoaMB.mbIss}"/>
<h:outputLabel value="IRPF %" />
<h:inputText value="#{pessoaMB.mbIrpf}"/>
</h:panelGrid>
</fieldset>
<fieldset>
<legend>Pesquisar Pessoa</legend>
<h:panelGrid columns="5" width="90%" style=" width : 858px;">
<h:outputLabel value="Codigo Reduzido:" />
<h:inputText title="Pesquisar por Codigo Reduzido"
value="#{pessoaMB.mbPesqCodReduzido}" style="width : 280px;"/>
<h:outputLabel value="CPF:" />
<h:inputText title="Pesquisar por CPF"
value="#{pessoaMB.mbPesqCPF}" style="width : 280px;"/>
<h:outputText value="Filtrar"/>
<h:outputLabel value="Nome:" />
<h:inputText title="Pesquisar por Nome"
value="#{pessoaMB.mbPesqNome}" style="width : 280px;"/>
<h:outputLabel value="RG:" />
<h:inputText title="Pesquisar por RG"
value="#{pessoaMB.mbPesqRG}" style="width : 280px;"/>
<h:commandButton value="Pesquisar" action="#{pessoaMB.pesquisarPessoaMB}"/>
</h:panelGrid>
</fieldset>
</h:form>
</body>
</html>
</f:view>
=================================================================================
Formulario de Imprimir Pessoa, imagina que eu cliquei no link Nome Completo
nesta linha :<h:commandLink value="#{pessoa.mbNomeCompleto}" action="#{pessoaMB.viewDetail}"/>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>Loca- Imprimir Pessoa</title>
</head>
<body>
<f:view>
<h:form>
<h:outputLabel value="Imprimir Pessoa" style="FONT-WEIGHT: bold;" /> /
<h:outputLink
value="#{facesContext.externalContext.requestContextPath}/pages/pessoa.jsf">
<f:verbatim>Pessoa</f:verbatim>
</h:outputLink> /
<h:outputLink
value="#{facesContext.externalContext.requestContextPath}/pages/login.jsf">
<f:verbatim>Logout</f:verbatim>
</h:outputLink>
<br>
<br>
<br>
<h:dataTable value="#{pessoaMB.funcionarioData}" var="pessoa" >
<h:column>
<f:facet name="header">
<h:outputLabel value="Codigo Reduzido" style="FONT-SIZE: small;"/>
</f:facet>
<h:outputText value="#{pessoa.mbCodReduzido}" style="FONT-SIZE: small;"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputLabel value="Nome Completo" style="FONT-SIZE: small;"/>
</f:facet>
<h:commandLink value="#{pessoa.mbNomeCompleto}" action="#{pessoaMB.viewDetail}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputLabel value="Endereço" style="FONT-SIZE: small;"/>
</f:facet>
<h:outputText value="#{pessoa.mbEndereco}" style="FONT-SIZE: small;"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputLabel value="Numero" style="FONT-SIZE: small;"/>
</f:facet>
<h:outputText value="#{pessoa.mbNumero}" style="FONT-SIZE: small;"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputLabel value="Bairro" style="FONT-SIZE: small;"/>
</f:facet>
<h:outputText value="#{pessoa.mbBairro}" style="FONT-SIZE: small;"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputLabel value="Cidade" style="FONT-SIZE: small;"/>
</f:facet>
<h:outputText value="#{pessoa.mbCidade}" style="FONT-SIZE: small;"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputLabel value="Estado" style="FONT-SIZE: small;"/>
</f:facet>
<h:outputText value="#{pessoa.mbEstado}" style="FONT-SIZE: small;"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputLabel value="CEP" style="FONT-SIZE: small;"/>
</f:facet>
<h:outputText value="#{pessoa.mbCep}" style="FONT-SIZE: small;"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputLabel value="E-mail" style="FONT-SIZE: small;"/>
</f:facet>
<h:outputText value="#{pessoa.mbEmail}" style="FONT-SIZE: small;"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputLabel value="RG" style="FONT-SIZE: small;"/>
</f:facet>
<h:outputText value="#{pessoa.mbRg}" style="FONT-SIZE: small;"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputLabel value="CPF" style="FONT-SIZE: small;"/>
</f:facet>
<h:outputText value="#{pessoa.mbCpf}" style="FONT-SIZE: small;"/>
</h:column>
</h:dataTable>
</h:form>
</f:view>
</body>
</html>
====================================================================================
Vai chamar a ação e ir para pessoaMB.viewDetail.............
package br.com.locadeveloper.bm;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import javax.faces.context.FacesContext;
import javax.faces.model.ListDataModel;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.Transient;
import br.com.locadeveloper.controler.PessoaControler;
@Entity
@Table(name="pessoa")
public class Pessoa implements Serializable{
private static final long serialVersionUID = 1L;
Pessoa pessoaMB;
PessoaControler lc;
ListDataModel<Pessoa> pessoaData;
public Pessoa(){
System.out.println(" ****** Construtor ***** ");
}
private long mbIdPessoaFisica;
private String mbCodReduzido, mbCodAlternativo, mbNomeCompleto,
mbSexo, mbRg, mbCpf, mbEmail, mbEndereco, mbNumero, mbBairro, mbCidade,
mbEstado, mbCep, mbFuncCadPor, mbFuncAltPor,
mbPesqCodReduzido, mbPesqNome, mbPesqCPF, mbPesqRG;
SimpleDateFormat mascData;
Date dataAtual;
private Date mbDataNasc, mbFuncCadData, mbFuncAltData;
private Double mbInss, mbIss, mbIrpf;
@Id
@GeneratedValue
@Column(name="idPessoaFisica")
public long getMbIdPessoaFisica() {
return mbIdPessoaFisica;
}
public void setMbIdPessoaFisica(long mbIdPessoaFisica) {
this.mbIdPessoaFisica = mbIdPessoaFisica;
}
@Column(name="codReduzido", nullable=false, length=11)
public String getMbCodReduzido() {
return mbCodReduzido;
}
public void setMbCodReduzido(String mbCodReduzido) {
this.mbCodReduzido = mbCodReduzido;
}
@Column(name="codAlternativo", nullable=true, length=11)
public String getMbCodAlternativo() {
return mbCodAlternativo;
}
public void setMbCodAlternativo(String mbCodAlternativo) {
this.mbCodAlternativo = mbCodAlternativo;
}
@Column(name="nomeCompleto", nullable=false, length=200)
public String getMbNomeCompleto() {
return mbNomeCompleto;
}
public void setMbNomeCompleto(String mbNomeCompleto) {
this.mbNomeCompleto = mbNomeCompleto;
}
@Column(name="dataNasc", nullable=false, length=10)
@Temporal(javax.persistence.TemporalType.DATE)
public Date getMbDataNasc() {
return mbDataNasc;
}
public void setMbDataNasc(Date mbDataNasc) {
this.mbDataNasc = mbDataNasc;
}
@Column(name="sexo", nullable=false, length=1)
public String getMbSexo() {
return mbSexo;
}
public void setMbSexo(String mbSexo) {
this.mbSexo = mbSexo;
}
@Column(name="rg", nullable=false, length=20)
public String getMbRg() {
return mbRg;
}
public void setMbRg(String mbRg) {
this.mbRg = mbRg;
}
@Column(name="cpf", nullable=false, length=20)
public String getMbCpf() {
return mbCpf;
}
public void setMbCpf(String mbCpf) {
this.mbCpf = mbCpf;
}
@Column(name="email", nullable=false, length=120)
public String getMbEmail() {
return mbEmail;
}
public void setMbEmail(String mbEmail) {
this.mbEmail = mbEmail;
}
@Column(name="endereco", nullable=false, length=150)
public String getMbEndereco() {
return mbEndereco;
}
public void setMbEndereco(String mbEndereco) {
this.mbEndereco = mbEndereco;
}
@Column(name="numero", nullable=false, length=11)
public String getMbNumero() {
return mbNumero;
}
public void setMbNumero(String mbNumero) {
this.mbNumero = mbNumero;
}
@Column(name="bairro", nullable=false, length=100)
public String getMbBairro() {
return mbBairro;
}
public void setMbBairro(String mbBairro) {
this.mbBairro = mbBairro;
}
@Column(name="cidade", nullable=false, length=150)
public String getMbCidade() {
return mbCidade;
}
public void setMbCidade(String mbCidade) {
this.mbCidade = mbCidade;
}
@Column(name="estado", nullable=false, length=2)
public String getMbEstado() {
return mbEstado;
}
public void setMbEstado(String mbEstado) {
this.mbEstado = mbEstado;
}
@Column(name="cep", nullable=false, length=20)
public String getMbCep() {
return mbCep;
}
public void setMbCep(String mbCep) {
this.mbCep = mbCep;
}
@Column(name="funcCadPor", nullable=false, length=100)
public String getMbFuncCadPor() {
return mbFuncCadPor;
}
public void setMbFuncCadPor(String mbFuncCadPor) {
this.mbFuncCadPor = mbFuncCadPor;
}
@Column(name="funcAltPor", nullable=true, length=100)
public String getMbFuncAltPor() {
return mbFuncAltPor;
}
public void setMbFuncAltPor(String mbFuncAltPor) {
this.mbFuncAltPor = mbFuncAltPor;
}
@Column(name="funcCadData", nullable=false, length=10)
@Temporal(javax.persistence.TemporalType.DATE)
public Date getMbFuncCadData() {
return mbFuncCadData;
}
public void setMbFuncCadData(Date mbFuncCadData) {
this.mbFuncCadData = mbFuncCadData;
}
@Column(name="funcAltData", nullable=true, length=10)
@Temporal(javax.persistence.TemporalType.DATE)
public Date getMbFuncAltData() {
return mbFuncAltData;
}
public void setMbFuncAltData(Date mbFuncAltData) {
this.mbFuncAltData = mbFuncAltData;
}
@Column(name="inss", nullable=false)
public Double getMbInss() {
return mbInss;
}
public void setMbInss(Double mbInss) {
this.mbInss = mbInss;
}
@Column(name="iss", nullable=false)
public Double getMbIss() {
return mbIss;
}
public void setMbIss(Double mbIss) {
this.mbIss = mbIss;
}
@Column(name="irpf", nullable=false)
public Double getMbIrpf() {
return mbIrpf;
}
public void setMbIrpf(Double mbIrpf) {
this.mbIrpf = mbIrpf;
}
@Transient
public String getMbPesqCodReduzido() {
return mbPesqCodReduzido;
}
public void setMbPesqCodReduzido(String mbPesqCodReduzido) {
this.mbPesqCodReduzido = mbPesqCodReduzido;
}
@Transient
public String getMbPesqNome() {
return mbPesqNome;
}
public void setMbPesqNome(String mbPesqNome) {
this.mbPesqNome = mbPesqNome;
}
@Transient
public String getMbPesqCPF() {
return mbPesqCPF;
}
public void setMbPesqCPF(String mbPesqCPF) {
this.mbPesqCPF = mbPesqCPF;
}
@Transient
public String getMbPesqRG() {
return mbPesqRG;
}
public void setMbPesqRG(String mbPesqRG) {
this.mbPesqRG = mbPesqRG;
}
@Transient
public SimpleDateFormat getMascData() {
mascData = new SimpleDateFormat("##/##/####");
return mascData;
}
public void setMascData(SimpleDateFormat mascData) {
this.mascData = mascData;
}
@Transient
public Date getDataAtual() {
dataAtual = new Date();
return dataAtual;
}
public void setDataAtual(Date dataAtual) {
this.dataAtual = dataAtual;
}
@Transient
public Pessoa getPessoaMB() {
return pessoaMB;
}
public void setPessoaMB(Pessoa pessoaMB) {
this.pessoaMB = pessoaMB;
}
@Transient
public ListDataModel<Pessoa> getFuncionarioData() {
System.out.println(" GET Link *********** ");
lc = new PessoaControler();
lc.imprimirPessoaHb(this);
pessoaData = new ListDataModel<Pessoa>(lc.getListFunc());
return pessoaData;
}
public void setFuncionarioData(ListDataModel<Pessoa> pessoaData) {
System.out.println(" SET Link *********** ");
this.pessoaData = pessoaData;
}
@Transient
public PessoaControler getLc() {
return lc;
}
public void setLc(PessoaControler lc) {
this.lc = lc;
}
public static long getSerialVersionUID() {
return serialVersionUID;
}
@SuppressWarnings("unchecked")
public String cadastroPessoa(){
this.setMbFuncCadData(this.getDataAtual());
this.setMbInss(0.0);
this.setMbIss(0.0);
this.setMbIrpf(0.0);
FacesContext ctx = FacesContext.getCurrentInstance();
Map faceSession = ctx.getExternalContext().getSessionMap();
this.setMbFuncCadPor(faceSession.get("nome").toString());
return "pessoa";
}
@SuppressWarnings("unchecked")
public String novoPessoaMB(){
pessoaMB = new Pessoa();
this.setMbFuncCadData(this.getDataAtual());
this.setMbInss(0.0);
this.setMbIss(0.0);
this.setMbIrpf(0.0);
FacesContext ctx = FacesContext.getCurrentInstance();
Map faceSession = ctx.getExternalContext().getSessionMap();
this.setMbFuncCadPor(faceSession.get("nome").toString());
return "pessoa";
}
public String salvarPessoaMB(){
lc = new PessoaControler();
lc.salvarPessoaHb(this);
return "pessoa";
}
public String excluirPessoaMB(){
lc = new PessoaControler();
lc.excluirPessoaHb(this);
return "pessoa";
}
public String imprimirPessoaMB(){
return "pessoarelato";
}
public String viewDetail(){
System.out.println(" ****** Link ***** ");
Pessoa pessoa = pessoaData.getRowData();
System.out.println(" ID PESSOA FISICA =>"+pessoa.getMbIdPessoaFisica());
System.out.println(" NOME COMPLETO =>"+pessoa.getMbNomeCompleto());
this.setPessoaMB(pessoa);
return "pessoa";
}
@SuppressWarnings("unchecked")
public String pesquisarPessoaMB(){
lc = new PessoaControler();
lc.consultaPessoaHb(this);
FacesContext ctx = FacesContext.getCurrentInstance();
Map faceSession = ctx.getExternalContext().getSessionMap();
this.setMbFuncAltPor(faceSession.get("nome").toString());
this.setMbFuncAltData(this.getDataAtual());
return "pessoa";
}
}
=======================================================================================
Finalmente cheguei aonde eu queria chegar.
Imagine que eu cliquei em nome da pessoa e chamou esse metodo, OK…
public String viewDetail(){
System.out.println(" ****** Link ***** ");
Pessoa pessoa = pessoaData.getRowData();
System.out.println(" ID PESSOA FISICA =>"+pessoa.getMbIdPessoaFisica());
System.out.println(" NOME COMPLETO =>"+pessoa.getMbNomeCompleto());
this.setPessoaMB(pessoa);
return "pessoa";
}
===============================================================================
Pessoal veja a impressão no meu console :
17:09:41,562 INFO [STDOUT] ****** Construtor *****
17:09:44,370 INFO [STDOUT] ****** Link *****
17:09:44,370 INFO [STDOUT] ID PESSOA FISICA =>2
17:09:44,370 INFO [STDOUT] NOME COMPLETO =>teste02
17:09:45,245 INFO [STDOUT] ****** Construtor *****
O problema é que ele chama o ****** Construtor ***** e ao return "pessoa"; ele apaga tudo,
meu Formulario Pessoa os campos fica em branco !!!
Porque, Favor me ajudemm ??? Sera que algum ser ja passou por isso ?
===========================================================================

