javasf@googlegroups.com
[Top] [All Lists]

Re: [javasf] Passando objetos para uma popup via ManageBean

Subject: Re: [javasf] Passando objetos para uma popup via ManageBean
From: thiago moraes
Date: Sun, 18 Apr 2010 21:10:45 -0300
Olá,

Você pode pegar o objeto selecionado da lista e colocar como atributo da request. Depois disso vc pega o objeto no outro MB.

2010/4/17 Mônica <monicabolsasr@xxxxxxxxx>
Olá feras,

Sou iniciante em JSF/RichFaces/Facelets e estou desenvolvendo uma aplicação onde tenho que passar, via manageBean, os dados de um objeto OperacaoHistorico, de uma rich:dataTable para uma popup. A popup deve retornar os dados deste objeto OperacaoHistorico e do objeto DetalheOperacaoHistorico que se associam por composição.

Quando rodo a aplicação e clico no botão para exibir a popup, ela se abre mas completamente em branco. Depois de correr muito atrás pesquisando nos fóruns e em apostilas não consegui passar deste ponto. Alguém pode me dar uma luz ??? Segue abaixo o código dos beans, da página que passa o bean OperacaoHistorico e chama o ManageBean, da popup que retorna OperacaoHistorico + DetalheOperacaoHistorico e do ManageBean.

Desde já agradeço e aguardo uma luz dos feras.

Bjus mil,
Mônica.

============================
Classes POJO
============================


public class OperacaoHistorico implements IPojo {

    private static final long serialVersionUID = 1L;

    private int id;
    private String data;
    private String hora;
    private String origem;
    private String operacao;    //campo texto. Não é o objeto operacao

    //getters & setters

   
}

public class DetalheOperacaoHistorico implements IPojo {

    private static final long serialVersionUID = 1L;

    private OperacaoHistorico operacao;
    private String registro;
    private PessoaFisica dadosAtuais; //Pojo PessoaFisica
    private PessoaFisica dadosAtualizados; //Pojo PessoaFisica

    //getters & setters
   
}


Segue abaixo os trechos de código da página que chama o ManageBean, da página que será a popup e do ManageBean.

============================
Página que chama o ManageBean
============================
<rich:dataTable value="#{pessoaFisicaMB.operacoes}" var="operacaoHistorico">         
   <f:facet name="header">
      <rich:columnGroup>
         <rich:column><h:outputText value="Data"/></rich:column>
         <rich:column><h:outputText value="Hora"/></rich:column>
         <rich:column><h:outputText value="Origem"/></rich:column>
         <rich:column><h:outputText value="Operação Realizada"/></rich:column>
         <rich:column><h:outputText value="Detalhar"/></rich:column>
      </rich:columnGroup>
   </f:facet>
   <rich:column><h:outputText value="#{operacaoHistorico.data}"/></rich:column>
   <rich:column><h:outputText value="#{operacaoHistorico.hora}"/></rich:column>
   <rich:column><h:outputText value="#{operacaoHistorico.origem}"/></rich:column>
  
   <!-- atributo operacao = String-->
   <rich:column><h:outputText value="#{operacaoHistorico.operacao}"/></rich:column>       
   <rich:column>
      <!-- botão que abre a popup-->
      <h:commandButton actionListener="#{pessoaFisicaMB.exibirDetalheHistorico}">
 
        <f:param id="operacaoHistorico" name="operacaoHistorico"
                       value="#{operacaoHistorico}"/><!-- passo o objeto operacaoHistorico-->
      </h:commandButton>
   </rich:column>              
</rich:dataTable>

============================
Página que exibe a popup
============================
...

<div>              
   <div><h:outputLabel value="Origem:" for="" /></div>
   <div><h:outputText value="#{operacaoHistorico.origem}"/></div>
      
   <div><h:outputLabel value="Data:" for="" /></div>
   <div><span><h:outputText value="#{operacaoHistorico.data}" /></span></div>
   
   <div><h:outputLabel value="Operação:" for="" /></div>
   <div><span><h:outputText value="#{operacaoHistorico.operacao}" /></span></div>

   <div><h:outputLabel value="Registro" for="" /></div>
   <div><h:outputText value="#{detalheOperacaoHistorico.registro}" /></div>
</div>
       
<fieldset><legend>Dados após à operação</legend>
   <div>

      <div><h:outputLabel value="Situação:" for="" /></div>
      <div>
             <h:outputText
                          value="#{detalheOperacaoHistorico.dadosAtualizados.situacaoCpf}"/>
      </div>
           
      <div><h:outputLabel value="Nome:" for="" /></div>
      <div>
             <h:outputText value="#{detalheOperacaoHistorico.dadosAtualizados.nome}"/>
      </div>
   
      <div><h:outputLabel value="Nascimento" for="" /></div>
      <div>
             <h:outputText
                          value="#{detalheOperacaoHistorico.dadosAtualizados.dataNasc}"/>
      </div>
                   
      <div><h:outputLabel value="Título:" for="" /></div>
      <div>
             <h:outputText value="#{detalheOperacaoHistorico.dadosAtualizados.titulo}"/>
      </div>
                   
      <div><h:outputLabel value="Naturalidade:" for="" /></div>
      <div>
             <h:outputText
                          value="#{detalheOperacaoHistorico.dadosAtualizados.natural}"/>
      </div>
       
      <div><h:outputLabel value="Nome da mãe:" for="" /></div>
      <div>
         <h:outputText value="#{detalheOperacaoHistorico.dadosAtualizados.mae}"/>  
      </div>
               
      <div><h:outputLabel value="Endereço:" for="" /></div>
      <div><h:outputText value="
                  #{detalheOperacaoHistorico.dadosAtualizados.endereco.logradouro}
                  #{detalheOperacaoHistorico.
dadosAtualizados.endereco.numero}
                  #{detalheOperacaoHistorico.
dadosAtualizados.endereco.complem}
                  #{detalheOperacaoHistorico.
dadosAtualizados.endereco.bairro}
                  #{detalheOperacaoHistorico.
dadosAtualizados.endereco.municipio}
                  #{detalheOperacaoHistorico.
dadosAtualizados.endereco.siglaUF}
                  #{detalheOperacaoHistorico.
dadosAtualizados.endereco.cep}"/>
      </div>

   </div>
</fieldset>
   
<fieldset><legend>Dados antes da operação</legend>
   <div>

      <div><h:outputLabel value="Situação:" for="">      <div>
             <h:outputText value="#{detalheOperacaoHistorico.dadosAtuais.situacaoCpf}"/>
      </div>
                       
      <div><h:outputLabel value="Nome:" for="">      <div><h:outputText value="#{detalheOperacaoHistorico.dadosAtuais.nome}"/></div>

      <div><h:outputLabel value="Nascimento" for="">      <div><h:outputText value="#{detalheOperacaoHistorico.dadosAtuais.dataNasc}"/></div>

      <div><h:outputLabel value="Título:" for="">      <div><h:outputText value="#{detalheOperacaoHistorico.dadosAtuais.titulo}"/></div>

      <div><h:outputLabel value="Naturalidade:" for="">      <div><h:outputText value="#{detalheOperacaoHistorico.dadosAtuais.natural}"/></div>

      <div><h:outputLabel value="Nome da mãe:" for="">      <div><h:outputText value="#{detalheOperacaoHistorico.dadosAtuais.mae}"/></div>

      <div><h:outputLabel value="Endereço:" for="">      <div><h:outputText value="
                  #{detalheOperacaoHistorico.dadosAtuais.endereco.logradouro}
                  #{detalheOperacaoHistorico.
dadosAtuais.endereco.numero}
                  #{detalheOperacaoHistorico.
dadosAtuais.endereco.comple}
                  #{detalheOperacaoHistorico.
dadosAtuais.endereco.bairro}
                  #{detalheOperacaoHistorico.
dadosAtuais.endereco.municipio}
                  #{detalheOperacaoHistorico.
dadosAtuais.endereco.siglaUF}
                  #{detalheOperacaoHistorico.
dadosAtuais.endereco.cep}"/>
      </div>

   </div>
</fieldset>
...               


============================
ManageBean
============================
public class PessoaFisicaMB extends AbstractManagedBean {

    @Injection
    private IPessoaFisicaBC pessoaFisicaBC;

    ...
    private OperacaoHistorico operacaoHistorico;
    private DetalheOperacaoHistorico detalheOperacaoHistorico;
    private HtmlTabPanel tabPanelCpf;
    ...

    public void exibirDetalheHistorico(ActionEvent e){
       
       UIComponent botao = e.getComponent();
       UIParameter param = (UIParameter) botao.findComponent("operacaoHistorico");
       OperacaoHistorico operacaoHistorico = (OperacaoHistorico)param.getValue();           
       detalheOperacaoHistorico = pessoaFisicaBC.exibirDetalheHistorico(operacaoHistorico);

       FacesContext facesContext = FacesContext.getCurrentInstance();

       final String exibeDetalheHistorico =
                                            facesContext.getExternalContext().getRequestContextPath() +
                                            "/private/pages/consultar_cpf_s1_aba2_hist.jsf";                     

       ViewHandler viewHandler = facesContext.getApplication().getViewHandler();

       String actionUrl = viewHandler.getActionURL(facesContext, exibeDetalheHistorico);        
            
       String _javascript_Text = "window.open('"+actionUrl+"','popupWindow','dependent=yes,
                                                              menubar=yes,toolbar=yes,height=200,
                                                              width=200');";
           
       AddResource addResource = AddResourceFactory.getInstance(facesContext);
             
       addResource.addInlineScriptAtPosition(facesContext,AddResource.HEADER_BEGIN,
                                                                _javascript_Text);        
    }

   ...
   
    public HtmlTabPanel getTabPanelCpf() {
        return tabPanelCpf;
    }

    public void setTabPanelCpf(HtmlTabPanel tabPanelCpf) {
        this.tabPanelCpf = tabPanelCpf;
    }
   ...

}

--
http://groups.google.com/group/javasf
 
You received this message because you are subscribed to the Google
Groups "javasf: JavaServer Faces Group" group.
To post to this group, send email to javasf@xxxxxxxxxxxxxxxx



--
Thiago Alves de Moraes
thiagoampj@xxxxxxxxx

--
http://groups.google.com/group/javasf
 
You received this message because you are subscribed to the Google
Groups "javasf: JavaServer Faces Group" group.
To post to this group, send email to javasf@xxxxxxxxxxxxxxxx
<Prev in Thread] Current Thread [Next in Thread>