@ManagedProperty注入AFTER @PostConstruct

时间:2011-07-07 02:03:49

标签: jsf-2 annotations myfaces managed-bean

这个问题已在解决方案中得到解决2.1实施

我有一个链接可以正确传递一个Integer参数:

<h:link outcome="/process/createProcess">
    <f:param name="id" value="#{process.idprocess}" />
    Edit
</h:link>

它正确地转到“createProcess.xhtml?id = 21”,我在请求范围支持Bean createProcess中有这段代码:

@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();
}

我注意到idProcess始终为空。调试后,我意识到setIdProcess方法被称为 AFTER @PostConstruct

我知道注入是在构造bean之后完成的,并且@PostConstruct中提供了所有managedProperties。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

仅供参考,我认为这篇文章中的问题是MYFACES-3116,已经修复了,因此2.0.6,2.1.0及更高版本没有它。