【问题标题】:Can not find getFlash() method in Myfaces在 Myfaces 中找不到 getFlash() 方法
【发布时间】:2011-11-12 16:01:48
【问题描述】:
FacesContext.getCurrentInstance().getExternalContext().getFlash()

我正在尝试使用上面的代码,似乎 getFlash() 在 Myfaces 的 JSF2 实现中不存在。如何访问它。

上面的行给了我这个错误

The method getFlash() is undefined for the type Object

这是我的导入,没有问题

import javax.faces.context.FacesContext;
import javax.faces.context.Flash;

【问题讨论】:

标签: java jsf-2 myfaces java-ee-5


【解决方案1】:

此编译错误表明您实际上是根据 JSF 1.2 而不是 JSF 2.0 构建项目。您问题上的 标记仅进一步证实了这一点,因为这通常与 JSF 1.2 相关。

但是,Java EE 5 环境支持 JSF 2.0。仔细检查您是否有正确的 JSF 2.0 JAR 文件。必要时提取 API 和 impl JAR 文件并读取 /META-INF/MANIFEST.MF 文件。仔细检查您的 faces-config.xml 文件是否被声明为符合 JSF 2.0。仔细检查您的 IDE 项目是否配置了 JSF 2.0 facet 并且在构建路径中使用 JSF 2.0 库。仔细检查您的目标容器是否未附带内置的 JSF 1.2 库,或者至少已将其关闭。

【讨论】:

  • 是的,这就是问题所在。我正在使用 Websphere 7。我已经在 1.2 中构建了我正在为 jsf2 使用隔离的共享库,但是在 eclipse 中,来自 websphere 的 1.2 内置于 jee jar 和 myfaces 都存在于类路径中。对于 1.2 中不存在的东西,它来自 myfaces,但对于 FacesContext 之类的东西,它会下降回到 1.2,当然没有 getFlash() 等。我该怎么办?如果我从类路径中删除 jee.jar ,那么这样做还有其他潜在问题。
  • 在 Eclipse 中,转到项目属性中的构建路径部分,然后单击选项卡 Order and Export。确保包含 JSF 2.0 库的条目(如果您将其放在 /WEB-INF/lib 中,则称为 Web App Libraries)放在包含 WAS' 的条目的上方自己的图书馆。您可以使用 UpDown 按钮来排列顺序。
  • 哦,伙计,我还能说什么,再次谢谢你:) 天才。你不在吗? @lu4242 也感谢您的意见。
  • 不客气。抱歉,如果我不在,我不明白你的意思?请注意,只要相关人员没有在当前帖子中发表评论,@nickname 就不起作用。然而,他已经对你的问题发表了评论,所以如果你在那里发表评论回复,它应该可以工作。
  • 太棒了! @BalusC 这篇文章和评论帮助了我!
猜你喜欢
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
  • 2021-10-26
  • 1970-01-01
  • 2011-02-17
  • 2014-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多