在我的 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