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
中可用。
我錯過了什麼?
這不應該發生。也不能在Mojarra 2.1.1上重現這一點。你正在使用什麼JSF impl/version? – BalusC
Tomcat 7.0上的@BalusC Apache MyFaces 2.0。我在你的博客中閱讀過你的文章,你的答案在這裏,你說注入的變量應該在@postconstruct中可用,但不適合我...... – Vic
我不做MyFaces。在未來的MyFaces問題中,請標記爲這樣。我在這個問題上添加了它。我所能建議的只是嘗試莫哈拉。即使這只是爲了排除一個和其他人的測試,以便您可以向MyFaces球員撰寫適當的問題報告。 – BalusC