在我的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);
我得到了一个Null指针,因为parm1 = null ...
当然我是新手,我真的不明白有关jsf lyfecycle的事情。 如果有人可以帮助我,那就太棒了:)。
提前致谢 GLO