2011-06-20 60 views
0

<rich:popupPanel />我有一個<rich:fileUpload />它有一個fileUploadListener定義爲#{assemblyMB.listener}。該監聽方法是在託管bean定義爲:爲什麼我無法從JSF2頁面訪問託管bean方法?

public void listener(FileUploadEvent event) throws Exception { 
    System.out.println("listener"); 
} 

JSF頁面上,我有:

<rich:fileUpload id="popupFileUpload" 
    fileUploadListener="#{assemblyMB.listener}" 
    onuploadcomplete="#{rich:component('popup')}.hide(); return false;" 
</rich:fileUpload> 

在託管bean,我已經宣佈了註解@ManagedBean(name = 「assemblyMB」 )。

我打算在文件上傳時訪問託管bean上的方法,但我沒有這樣做。我不明白爲什麼會發生這種情況。

有人可以在這裏扔光嗎?在此先感謝,

gtludwig

回答

0

假設RichFaces的4.0,你需要確保的是,家長<h:form>設置爲請求主體編碼爲multipart/form-data

<h:form enctype="multipart/form-data"> 

這種方式應該正確上傳文件,並且當上傳到達服務器端時應該調用偵聽器方法。

+0

感謝您花時間!是的,Richfaces 4.0。但仍然沒有顯示在控制檯上。 標籤在模板文件中設置,這可能是原因嗎?我認爲該文件正在上傳,因爲當我在上傳文件後訪問頁面上的組件時,它會彈出(預期操作),並在那裏列出文件。 – gtludwig

相關問題