2011-07-07 27 views
0

这个问题已经解决的MyFaces的2.1实现@ManagedProperty注射后@PostConstruct

我有正确传递一个整数参数,像这样的链接:

<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方法在@PostConstruct之后被称为

我知道注入是在bean的构建完成之后完成的,并且所有的managedProperties都在@PostConstruct中可用。

我错过了什么?

+0

这不应该发生。也不能在Mojarra 2.1.1上重现这一点。你正在使用什么JSF impl/version? – BalusC

+0

Tomcat 7.0上的@BalusC Apache MyFaces 2.0。我在你的博客中阅读过你的文章,你的答案在这里,你说注入的变量应该在@postconstruct中可用,但不适合我...... – Vic

+0

我不做MyFaces。在未来的MyFaces问题中,请标记为这样。我在这个问题上添加了它。我所能建议的只是尝试莫哈拉。即使这只是为了排除一个和其他人的测试,以便您可以向MyFaces球员撰写适当的问题报告。 – BalusC

回答

0

仅供参考,我认为在这篇文章中的问题是MYFACES-3116,已经固定在,所以2.0.6,2.1.0和高版本没有它。