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