2011-09-08 14 views
3
FacesContext.getCurrentInstance().getExternalContext().getFlash() 

我試圖使用上面的代碼,好像getFlash()不存在於JSF2實現的Myfaces中。我怎樣才能訪問它。在Myfaces中找不到getFlash()方法

上述行給了我這個錯誤

The method getFlash() is undefined for the type Object 

這裏是我的進口與他們

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

我很喜歡在Myface上調用的seeFlash()方法tbh。 – Loktar

+3

檢查svn [ExternalContext](http://svn.apache.org/repos/asf/myfaces/core/trunk/api/src/main/java/javax/faces/context/ExternalContext.java)和[ServletExternalContextImpl ](http://svn.apache.org/repos/asf/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/context/servlet/ServletExternalContextImpl.java)。它在那裏。 – lu4242

回答

4

沒有問題,這個編譯錯誤提示,你實際上建設項目對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構面並在構建路徑中使用JSF 2.0庫,請仔細檢查。如果您的目標容器沒有附帶內置的JSF 1.2庫,或者至少關閉此功能,請仔細檢查。

+0

是的,這是問題,我正在使用Websphere 7。我已經建立了1.2我使用的是jsf2的獨立共享自由文件,但是在eclipse中,來自websphere的1.2版本都是在jee jar中構建的,而myfaces則存在於classpath中。對於1.2中不存在的東西,它從表面獲得,但是對於FacesContext回到1.2哪個課程沒有getFlash()等。我該怎麼辦?如果我從課程路徑中刪除jee.jar,那麼還有其他潛在的問題。 –

+1

在Eclipse中,轉到項目屬性中的構建路徑部分,然後單擊選項卡*順序和導出*。確保包含JSF 2.0庫的條目(如果已將其放在'/ WEB-INF/lib'中,則稱爲* Web App Libraries *)已放在**包含WAS自己的庫的條目的上方。您可以使用* Up *和* Down *按鈕來排列訂單。 – BalusC

+0

O男人我能說什麼其他再次謝謝你:)天才。你離開了嗎? @ lu4242也很感激你的投入。 –