2011-07-07 33 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和高版本沒有它。