Lorsque je suis sur le point de naviguer vers une autre page, je voudrais mettre un objet dans le flash. Voilà comment je le fais à l'heure actuelle:Accès flash avec h: lien dans JSF
<h:commandLink action="#{bean.foo(object)}">
<h:graphicsImage .../>
</h:commandLink>
Et la méthode de haricot:
public String foo(Object o) {
FacesContext.getCurrentInstance().getExternalContext().getFlash().put("key", o);
return "target.xhtml?faces-redirect=true";
}
je voudrais le faire avec un h: lien xhtml sans méthode de haricot (également parce que j'ai entendu que la navigation commandLink est mauvaise). J'ai quelque chose comme cela à l'esprit, pour remplacer le code ci-dessus:
<h:link outcome="target.xhtml">
<h:graphicsImage .../>
<someTag someAttr="#{facesContext.externalContext.flash.put("key", object)}"/>
</h:link>
est-il une telle étiquette (une_balise) qui peut être utilisé comme ça?
Ce c: chose mis semble prometteur. Je ne peux pas simplement mettre cela dans le lien h: pour l'exécuter quand je clique sur le lien? – user1785730
Vous pouvez, mais il est déclenché au chargement de la page, pas après avoir cliqué sur le lien. – jklee