Pesso to pegando uma pizaaaaaaa do JSF, Prometo que e 1 e ultimo em JSF…
Seguinte Tenho duas 2 classes:
1 Pessoa ----------------para varias ------------ N Mensalidades
No formulário de pagar mensalidade tenho um Combobox, que tem o nome da Pessoa que vai pagar…
Ai está meu problema não consigo pegar esse nome e listar no Combobox…
em baixo meu código:
mb
package br.gov.nutec.mb;
import java.io.Serializable;
import br.gov.nutec.facade.MensalidadeFacade;
import br.gov.nutec.facade.MensalidadeFacadeImpl;
import br.gov.nutec.facade.PessoaFacade;
import br.gov.nutec.facade.PessoaFacadeImpl;
import br.gov.nutec.modelo.Pessoa;
import br.gov.nutec.modelo.Mensalidade;
import java.util.List;
import java.util.ArrayList;
import javax.xml.ws.Action;
import javax.el.ELContext;
import javax.el.ELResolver;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.component.UIParameter;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;
import javax.faces.validator.ValidatorException;
import javax.faces.component.html.HtmlSelectOneMenu;
public class MensalidadeMB implements Serializable {
private static long serialVersionUID = 1L;
public static long getSerialVersionUID() {
return serialVersionUID;
}
public static void setSerialVersionUID(long aSerialVersionUID) {
serialVersionUID = aSerialVersionUID;
}
//=========================== classes importadas e relacionadas===========================================//
private Mensalidade mensalidade = new Mensalidade();
private Long idMensalidade;
private Pessoa pessoa = new Pessoa();
private Long id;
private Long idPessoa;
// pessoa para mensaliades no combomBox
private HtmlSelectOneMenu pessoaSelecionado; // adiciona menu e import
public HtmlSelectOneMenu getPessoaSelecionado() { //get e import
return pessoaSelecionado;
}
// select para mensalidadeMB ================================================================== inicio para combo
private MensalidadeMB pagaMensaldiadeMB() {
FacesContext facesContext = FacesContext.getCurrentInstance();
ELContext elContext = facesContext.getELContext();
ELResolver resolver = facesContext.getApplication().getELResolver();
Object c = resolver.getValue(elContext, null, "mensaldiadeMB");
return (MensalidadeMB) c;
}
public List<SelectItem> getPessoaParaComboBox() { // pega uma pessoa para o selec
List<SelectItem> lista = new ArrayList<SelectItem>();
// usaremos o id como valor e o nome como label para os SelectItem.
PessoaMB mb = pegaPessoaMB();
for (Pessoa c : mb.getPessoas()) {
lista.add(new SelectItem(c.getId().toString(), c.getNome())); // idPessoa
}
return lista;
}
//===============================================================================================fim para combo
//=========================== classes importadas e relacionadas==================================FIM=========//
public MensalidadeMB() {
System.out.println(" >>>>>>>>>>>>>>>>>>>> Contrutor do Mensalidade_MB <<<<<<<<<<<<<<<<<<");
if (this.mensalidade == null) {
this.mensalidade = new Mensalidade();
}
}
private PessoaMB pegaPessoaMB() {
FacesContext facesContext = FacesContext.getCurrentInstance();
ELContext elContext = facesContext.getELContext();
ELResolver resolver = facesContext.getApplication().getELResolver();
Object c = resolver.getValue(elContext, null, "pessoaMB");
return (PessoaMB) c;
}
public List<SelectItem> GetPessoaSelecionado() {
List<SelectItem> lista = new ArrayList<SelectItem>();
PessoaMB mb = pegaPessoaMB();
for (Pessoa p : mb.getPessoas()) {
boolean add = lista.add(new SelectItem(p.getId().toString(), p.getNome()));
}
return lista;
}
//* *******************************FUNCOES BASICAS**********************************************************/
public String save() {
MensalidadeFacade MensalidadeService = new MensalidadeFacadeImpl();
MensalidadeService.salva(this.getMensalidade());
this.setMensalidade(new Mensalidade());
//mensalidade
PessoaFacade pessoaService = new PessoaFacadeImpl();
this.setPessoa(new Pessoa());
return "cadastraSucesso";
}
//salvando tudo
@SuppressWarnings("empty-statement")
public void salva(Action event) {
PessoaFacade pessoaService = new PessoaFacadeImpl();// instancia classe pessoa
MensalidadeFacade mensalidadeService = new MensalidadeFacadeImpl();// instancia classe Mensalidade
//Long idPessoa = Long.valueOf(getPessoaSelecionado().getValue().toString()); //campo idPessoa passa ser String
Long idMensaldiade = Long.valueOf(pessoaSelecionado.getValue().toString());
//Mensalidade p = this.setMensalidade();
//Pessoa p = this.setPessoa()
//Mensalidade.setPessoa.idPessoa(getId()Pessoa);
mensalidadeService.atualiza(this.getMensalidade());
//this.setMensalidade();
//return "sucesso";
// this.setPessoa(pessoaService.procura(this.getId()));
// MensalidadeService.salva(this.getMensalidade());
// Long id_cargo = Long.valueOf(pessoaSelecionado.getValue().toString());
// Pessoa Mensalidade
//Pessoa c = cargoDao.load(id_cargo);
// usuario.setCargo_cod_cargo(id_cargo);
// System.out.println(cargo.getUsuario().getNome());
this.setMensalidade(new Mensalidade());
this.setPessoa(new Pessoa());
}
public String delete() {
MensalidadeFacade MensalidadeService = new MensalidadeFacadeImpl();
this.getMensalidade().setIdMensalidade(getIdMensalidade());
MensalidadeService.remove(this.getMensalidade());
this.setMensalidade(new Mensalidade());
return "removeSucesso";
}
public String merge() {
MensalidadeFacade MensalidadeService = new MensalidadeFacadeImpl();
MensalidadeService.atualiza(this.getMensalidade());
this.setMensalidade(new Mensalidade());
return "atualizaSucesso";
}
public String load() {
MensalidadeFacade MensalidadeService = new MensalidadeFacadeImpl();
this.setMensalidade(MensalidadeService.procura(this.getIdMensalidade()));
return "pesquisaSucesso";
}
//* *******************************FUNCOES BASICAS*******FIM***************************************************/
//get set para pessoa
public List<Pessoa> getPessoas() {
PessoaFacade pessoaService = new PessoaFacadeImpl();
return pessoaService.lista();
}
// fim get set pessoa
public String list() {
MensalidadeFacade MensalidadeService = new MensalidadeFacadeImpl();
this.setMensalidade(MensalidadeService.procura(this.getId()));
return "pesquisaSucesso";
}
//get set para mensalidades
public List<Mensalidade> getMensalidades(){
MensalidadeFacade MensalidadeService = new MensalidadeFacadeImpl();
return MensalidadeService.lista();
}
public Mensalidade getMensalidade() {
return mensalidade;
}
public void setMensalidade(Mensalidade mensalidade) {
this.mensalidade = mensalidade;
}
public Long getIdMensalidade() {
return idMensalidade;
}
public void setIdMensalidade(Long idMensalidade) {
this.idMensalidade = idMensalidade;
}
public void setPessoaSelecionado(HtmlSelectOneMenu pessoaSelecionado) {
this.pessoaSelecionado = pessoaSelecionado;
}
public Long getIdPessoa() {
return idPessoa;
}
public void setIdPessoa(Long idPessoa) {
this.idPessoa = idPessoa;
}
public Pessoa getPessoa() {
return pessoa;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
xhtml formulario
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<style type="text/css">
.ecol1 { vertical-align: top; padding-right : 25px }
.ecol2 { vertical-align: top; border-left: #ACBECE 1px solid; padding-left : 10px }
.rich-calendar-tool-btn{
font-family: Arial, Verdana;
}
</style>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<link rel="StyleSheet" type="text/css" href="../style/estilos.css" media="screen" />
</head>
<a4j:keepAlive beanName="pessoaMB" />
<ui:composition template="/template/template.xhtml">
<ui:define name="corpo">
<rich:tabPanel switchType="ajax">
<rich:tab label="Cadastro de Mensalidade">
<a4j:form>
<rich:messages />
<legend>Cadastro de Pessoa</legend>
<a4j:region id="regiaoAjax">
<a4j:status id="sts">
<f:facet name="start">
<h:graphicImage value="/images/ajax-loader_1.gif" />
</f:facet>
</a4j:status>
</a4j:region>
<!-- INICIA FORMULARIO-->
<fieldset>
<h:panelGrid columns="2" id="inputs">
<h:outputLabel for="matricula" value="Digite a Matrícula: " />
<h:inputText id="matriuclaInput" value="#{pessoaMB.pessoa.matricula}" styleClass="inputPesquisa" >
<a4j:commandButton value="Pesquisar" action="#{pessoaMB.pesquisaByMatricula}" styleClass="inputPesquisaBtn2" reRender="inputs,fisicas,pessoas,listaumensalidade">
</a4j:commandButton>
</h:inputText>
<h:outputText value="pessoas"/>
<h:selectOneMenu>
<f:selectItems value="#(pagaMensalidadeMB.PessoaParaComboBox)"/>
</h:selectOneMenu>
<h:inputText id="idMensalidade" value="#{mensalidadeMB.mensalidade.idMensalidade}" styleClass="inputPesquisa3" size="4" >
</h:inputText>
<h:outputLabel for="Data Pagamento.:" value="Data Pagamento.: " />
<rich:calendar id="data_pag" value="#{mensalidadeMB.mensalidade.data_pag}">
<a4j:support event="ondateselected" />
</rich:calendar>
<h:outputLabel for="valor" value="Valor.: ($)"/>
<h:inputText id="valor" value="#{mensalidadeMB.mensalidade.valor}" styleClass="edit" size="30">
</h:inputText>
</h:panelGrid>
|<a4j:commandButton value="Inserir" action="#{mensalidadeMB.save}" status="sts" reRender="inputs,fisicas,pessoas,mensalidade,mensalidades" styleClass="botoes"/>
|<a4j:commandButton value="Deletar" action="#{mensalidadeMB.delete}" status="sts" reRender="inputs,fisicas,pessoas,mensalidade" styleClass="botoes"/>
|<a4j:commandButton value="Modificar" action="#{mensalidadeMB.merge}" status="sts" reRender="inputs,fisicas,pessoas,mensalidade" styleClass="botoes"/>
|<a4j:commandButton value="Listar" action="#{mensalidadeMB.list}" status="sts" reRender="inputs,fisicas,pessoas,mensalidade" styleClass="botoes"/>
|<a4j:commandButton value="Relatório" action="toCadastraMensalidade" status="sts" reRender="inputs,fisicas,pessoas,mensalidade" styleClass="botoes"/>
|<a4j:commandButton value="Menslidades" action="toCadastraMensalidade" immediate="true" styleClass="botoes"/>
|<a4j:commandButton value="Voltar" immediate="true" action="toIndex" styleClass="botoes"/>|
</fieldset>
<rich:messages />
<fieldset><legend>Atualização de Dados</legend>
<f:subview id="listauser">
<rich:dataTable value="#{pessoaMB.pessoas}" var="pessoa" rows="1" id="pessoas" width="100%" cellspacing="0" cellpadding="0" border="5">
<h:column>
<f:facet name="header">
<h:outputText value="MATRÍCULA" />
</f:facet>
<h:outputText value="#{pessoa.matricula}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="NOME" />
</f:facet>
<h:outputText value="#{pessoa.nome}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="STATUS" />
</f:facet>
<h:outputText value="#{pessoa.status}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Excluir"/>
</f:facet>
<a4j:commandLink action="#{pessoaMB.delete}" status="sts" reRender="inputs,fisicas,pessoas" >
<h:outputText value="Excluir"/>
<f:setPropertyActionListener value="#{pessoa.id}" target="#{pessoaMB.id}" /> <!-- pega o id -->
</a4j:commandLink>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Editar"/>
</f:facet>
<a4j:commandLink reRender="inputs,fisicas,pessoas" >
<h:outputText value="Editar"/>
<f:setPropertyActionListener value="#{pessoa}" target="#{pessoaMB.pessoa}" />
</a4j:commandLink>
</h:column>
<f:facet name="footer">
<rich:datascroller />
</f:facet>
</rich:dataTable>
</f:subview>
<f:subview id="listaumensalidade">
<rich:dataTable value="#{mensalidadeMB.mensalidades}" var="mensalidade" rows="5" id="mensalidades" width="100%" cellspacing="0" cellpadding="0" border="5">
<h:column>
<f:facet name="header">
<h:outputText value="CÓDIGO" />
</f:facet>
<h:outputText value="#{mensalidade.idMensalidade}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="DATA/PAGAMENTO" />
</f:facet>
<h:outputText value="#{mensalidade.data_pag}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="VALOR" />
</f:facet>
<h:outputText value="#{mensalidade.valor}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Excluir"/>
</f:facet>
<a4j:commandLink action="#{mensalidadeMB.delete}" status="sts" reRender="inputs,mensalidade,mensalidades" >
<h:outputText value="Excluir"/>
<f:setPropertyActionListener value="#{mensalidade.idMensalidade}" target="#{mensalidadeMB.idMensalidade}" /> <!-- pega o id -->
</a4j:commandLink>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Editar"/>
</f:facet>
<a4j:commandLink reRender="inputs,mensalidade,mensalidades" >
<h:outputText value="Editar"/>
<f:setPropertyActionListener value="#{mensalidade}" target="#{mesalidadeMB.mensalidade}" />
</a4j:commandLink>
</h:column>
<f:facet name="footer">
<rich:datascroller />
</f:facet>
</rich:dataTable>
</f:subview>
</fieldset>
</a4j:form>
</rich:tab>
<!-- ****************************************************************** TAB LISTA DE PESSOAS**************************************************-->
<rich:tab label="Lista de Pessoas">
<f:subview id="listauser">
<a4j:form>
<rich:messages />
<fieldset>
<a4j:region id="regiaoAjax">
<a4j:status id="sts">
<f:facet name="start">
<h:graphicImage value="/images/ajax-loader_1.gif" />
</f:facet>
</a4j:status>
</a4j:region>
<h:panelGrid columns="2" id="inputs">
<h:outputLabel for="nomeLabel" value="Digite o Nome: " />
<h:inputText id="nomeInput" value="#{pessoaMB.pessoa.nome}" style=" width : 250px;" styleClass="inputPesquisa">
<a4j:commandButton value="Pesquisar" action="#{pessoaMB.pesquisaByNome}" reRender="pessoas">
</a4j:commandButton>
</h:inputText>
</h:panelGrid>
</fieldset>
<rich:dataTable value="#{pessoaMB.pessoas}" var="pessoa" rows="10" id="pessoas" width="100%" cellspacing="0" cellpadding="0" border="1">
<h:column>
<f:facet name="header">
<h:outputText value="MATRÍCULA" />
</f:facet>
<h:outputText value="#{pessoaMB.pessoa.matricula}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="NOME" />
</f:facet>
<h:outputText value="#{pessoaMB.pessoa.nome}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="E-MAIL" />
</f:facet>
<h:outputText value="#{pessoaMB.pessoa.email}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="CPF" />
</f:facet>
<h:outputText value="#{pessoaMB.pessoa.cpf}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="DATA NASC." />
</f:facet>
<h:outputText value="#{pessoaMB.pessoa.data_nasc}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="CELULAR" />
</f:facet>
<h:outputText value="#{pessoaMB.pessoa.celular}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Excluir"/>
</f:facet>
<a4j:commandLink action="#{pessoaMB.delete}" status="sts" reRender="inputs,fisicas,pessoas" >
<h:outputText value="Excluir"/>
<f:setPropertyActionListener value="#{pessoa.id}" target="#{pessoaMB.id}" />
</a4j:commandLink>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Editar"/>
</f:facet>
<a4j:commandLink reRender="inputs,fisicas,pessoas" >
<h:outputText value="Editar"/>
<f:setPropertyActionListener value="#{pessoa}" target="#{pessoaMB.pessoa}" />
</a4j:commandLink>
</h:column>
<f:facet name="footer">
<rich:datascroller />
</f:facet>
</rich:dataTable>
</a4j:form>
</f:subview>
</rich:tab>
<!-- ******************************FIM************************************ TAB LISTA DE PESSOAS********************************************-->
<rich:tab label="Filtros">
</rich:tab>
<rich:tab label="Relatórios">
</rich:tab>
</rich:tabPanel>
</ui:define>
</ui:composition>
</html>
