Frameworks
Area para frameworks de apresentacao e persistencia

JSF - DICAS

******************************************************* 

PASSAGEM DE PARÂMETROS

Existem duas soluções para passagem de parâmetros, sendo que uma é a que deveria funcionar normalmente e a outra é a "forçada de barra".

  • Solução normal
    • CommandLink normal, com a definição do parâmetro:

    <h:commandLink action="#{MB.navegaAba}" 
               <h:outputText value="................." />
               <f:param value="#{
MB.meuBean.nome}" 

                        name="nomeBean" />
           </h:commandLink>

    • No faces-config.xml, a declaração dos parâmetros que serão recebidos pelo MBDestino

<managed-bean>  ...........

    <managed-property>
            <property-name>
nomeBean</property-name>
            <value>#{param.
nomeBean}</value>
          </managed-property>   

</managed-bean> 

OBS: param é uma palavra reservada

    • A declaração do bean do parâmetro a ser recebido no MBDestino

    private String nomeBean;
           public void set
NomeBean( String nomeBean) {
                this.
nomeBean= nomeBean;
           }

            public String getCodigoParceiro() {
                return this.
nomeBean);
            }

E é só chamar esses métodos na hora em que for necessário.

  •  Solução forçada
    • No  MB de origem,  declara-se o parâmetro direto  no FacesContext

FacesContext.getCurrentInstance().getExternalContext().  getRequestMap().put("nomeBean" , this.getMyBean().getNome() );       

    • No MB de destino, recupera-se o parâmetro, também diretamente pelo FaceContext, sendo existem duas possíveis maneiras (a segunda apresentada é a mais forçada):

      • FacesContext.getCurrentInstance().
getExternalContext().getRequestParameterMap().
get("nomeBean") 
      • ((HttpServletRequest)FacesContext.getCurrentInstance(). 

getExternalContext().getRequest()).getAttribute("nomeBean")

 *******************************************************

 JSF

Hibernate