Tengo un malentendido con el uso del alcance de flash en jsf 2. Quiero poner un objeto en el mapa de flash durante mi acción y mostrar este objeto en la página siguiente. Aquí es mi acción (llamar por h: commandLink):El objeto en el alcance de Flash no está disponible después de redirigir
public String showDetail(PersonneDTO personne) {
MessageFlashBean message = new MessageFlashBean();
message.addMessage("test");
FacesContext.getCurrentInstance().getExternalContext().getFlash()
.put("test", message);
return "showDetail";
}
Es sólo una prueba, pero el objeto real que quiero usar es más compleja.
Aquí es la segunda página con el uso de flash:
<ui:fragment rendered="#{flash.test != null and flash.test.hasMessage()}" >
<ui:repeat var="message" value="#{flash.test.messages}">
#{message}
</ui:repeat>
</ui:fragment>
Aquí es la navegación (y aquí es mi problema :)):
<navigation-rule>
<from-view-id>/index.xhtml</from-view-id>
<navigation-case>
<from-outcome>showDetail</from-outcome>
<to-view-id>/private/showDetail.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
En este caso, las obras de alcance del flash bien y mi mensaje aparece.
Pero si agrego una redirección en la caja de navegación, mi objeto en el mapa flash ha desaparecido.
No entiendo por qué no puedo usar el redireccionamiento en la regla de navegación (creía que era el objetivo del alcance del flash).
Puede haber algún problema en mi código.
¿Alguien me puede ayudar?
Gracias
Lo he probado en JSF 2.0.3.FCS, sobrevivió a una redirección. – Ravi