2013-11-26 68 views
0

我有一个问题,以显示图像到<p:dataTable>。我正在关注的BalusC的指示here但是当我尝试使用context.getCurrentPhaseId()如下,方法getCurrentPhaseId()未定义类型FacesContext

FacesContext context = FacesContext.getCurrentInstance(); 

if (context.getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) { 
    return new DefaultStreamedContent(); 
} 

然后Eclipse中显示了context.getCurrentPhaseId()以下编译错误:

的方法getCurrentPhaseId()是未定义的类型FacesContext

这是如何造成的,我该如何解决? 我正在使用JSF 2和Primefaces 2.2快照。

+1

发布带有问题的代码。 –

+0

这可能只是你的错误(它发生在我身上的次数超过了我的数量,尝试评论和取消注释违规行,你也可以尝试重建你的项目 – kolossus

+0

我试过了,但错误仍然存​​在 – leoJerez

回答

0

方法getCurrentPhaseId()是未定义的类型的FacesContext

该方法在JSF 2.0是introduced。因此,这个编译错误表明您实际上正在使用JSF 1.x,或者至少是针对JSF 1.x而不是JSF 2.x进行编译。由于PrimeFaces 3.x与JSF 1.x不兼容,这反过来表明您的IDE项目不正确地引用构建路径中的JSF 1.x库,因此实际上是针对JSF 1.x进行编译。

检查项目的构建路径属性并摆脱JSF 1.x库。事实上,你永远不应该在项目的Build Path属性中摆弄。只需设置部署程序集和/或目标运行时间右侧和/或将必要的JAR放入/WEB-INF/lib文件夹中,实际上应该是您需要对图库管理进行的所有操作。

+0

感谢您的回答。Ok,我有javax.faces-2.2.1.jar和primefaces -2.2-SNAPSHOT.jar对不起,但是我在Primefaces版本上发生了错误,在这种情况下我该怎么办? – leoJerez

+0

回答时,从构建路径中删除JSF 1.x – BalusC

+0

但我不知道哪个jar需要删除,因为我只有这些.jar,我说,如果我删除它的项目不起作用。请,你能帮助我吗?我很新呃。 当我审查项目方面时,我发现有JSF 2.1,这是问题吗?因为我无法将该属性更改为JSF 2.2 顺便说一句,感谢您在帖子中的更正,并请原谅我的英语。 – leoJerez

相关问题