对于FacesContext类型,方法getCurrentPhaseId()未定义

时间:2013-11-26 19:15:41

标签: jsf

将图像显示到<p:dataTable>时出现问题。我正在按照BalusC的说明here,但当我尝试使用context.getCurrentPhaseId()时,如下所示,

FacesContext context = FacesContext.getCurrentInstance();

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

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

  

对于FacesContext类型

,方法getCurrentPhaseId()未定义

这是如何引起的,我该如何解决? 我正在使用JSF 2和Primefaces 2.2-snapshot。

1 个答案:

答案 0 :(得分: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进行编译。 / p>

检查项目的 Build Path 属性并删除该JSF 1.x库。实际上,您永远不需要在项目的 Build Path 属性中摆弄。只需设置部署程序集和/或目标运行时,和/或在/WEB-INF/lib文件夹中删除必要的JAR就应该是您需要做的所有事情关于图书馆管理。