在commandLink中,我使用<f:param ...>并在我的MBean </f:param中获得了一个空参数...>

时间:2013-07-07 16:45:45

标签: jsf-2 parameters

在我的jsf中,我使用:

<f:param name="parm1" value="#{templateGP01MB.stringAnnId}" /> 

并在我的Managed Bean中接收一个null参数。

如果我写下以下内容:

<f:param name="parm1" value="5" />

我的MBean中有5个。

这是我的JSF代码:                     

                <p:imageSwitch effect="turnDown" speed="10000">  
                    <ui:repeat value="#{galerieFloMB.stringArray}" var="image" >                         
                        <h:commandLink value="Voir l'annonce correspondante" actionListener="#{templateGP01MB.actionListener}" action="#{templateGP01MB.action}" >
                            <!-- <p:graphicImage value="/resources/images/download/#{image}" width="300" height="300" onclick="visualisationAnnonce('#{image}');" /> -->
                            <p:graphicImage value="/resources/images/download/#{image}" width="300" height="300" />
                            <f:attribute name="attributeName1" value="#{image}" />  
                            <f:param name="parm1" value="#{templateGP01MB.stringAnnId}" /> 
                        </h:commandLink> 
                    </ui:repeat>   
                </p:imageSwitch> 

            </h:form>

这是我的MBean TemplateGP01MB.java的代码:

public void actionListener(ActionEvent event) {
    photo = (String) event.getComponent().getAttributes().get("attributeName1");
    annonceEtendue = getAnnonceEtendueFacade().searchByPhoto(photo);
}

public String action() {
    return "visualisationAnnonce";
}

在MBean VisualisationAnnonceMB.java中,我得到了:

    FacesContext fc = FacesContext.getCurrentInstance();
    Map<String, String> params = fc.getExternalContext().getRequestParameterMap();
    String parm1 = params.get("parm1");
    Integer integerParm1 = Integer.parseInt(parm1);

我得到了一个N​​ull指针,因为parm1 = null ...

当然我是新手,我真的不明白有关jsf lyfecycle的事情。 如果有人可以帮助我,那就太棒了:)。

提前致谢 GLO

0 个答案:

没有答案