1

在我的 jsf 中,我使用:

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

并在我的托管 Bean 中接收一个空参数。

如果我写以下内容:

<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);

我得到了一个空指针异常,原因是 parm1 = null ...

当然我是一个新手,我不太了解 jsf lyfecycle 的一切。如果有人可以帮助我,那就太好了:)

在此先感谢 GLO

4

0 回答 0