jsf 2 - inyectar - @ManagedProperty inyectado DESPUÉS de @PostConstruct
managed property jsf 2 (1)
ESTE PROBLEMA YA SE HA RESUELTO EN LA IMPLEMENTACIÓN DE MYFACES 2.1
Tengo un enlace que pasa un parámetro Integer correctamente así:
<h:link outcome="/process/createProcess">
<f:param name="id" value="#{process.idprocess}" />
Edit
</h:link>
Va a "createProcess.xhtml? Id = 21" correctamente, y tengo este código en el Beans createProcess de respaldo del alcance de la solicitud:
@ManagedProperty(value="#{param.id}")
private Integer idProcess;
private Process newProcess;
@PostConstruct
public void init()
{
log();
if (idProcess!=null)
newProcess = Dao.getProcessDAO().get(idProcess);
else
newProcess = new Process();
}
Me he dado cuenta de que idProcess
siempre es nulo. Después de la depuración, me di cuenta de que el método setIdProcess se llama AFTER @PostConstruct
.
Entiendo que la inyección se realiza justo después de la construcción del bean y que todas las managedProperties están disponibles en @PostConstruct
.
¿Qué me estoy perdiendo?
Solo como referencia, creo que el problema en esta publicación es MYFACES-3116 , con el que ya se había corregido, por lo que 2.0.6, 2.1.0 y versiones superiores no lo tienen.