2011-12-06 25 views
0

我有一個INPUTFILE isntance把我的形式從Java代碼:配置JSF/ICEFaces的INPUTFILE編程

FacesContext context = FacesContext.getCurrentInstance(); 

MethodExpressionActionListener meal = new MethodExpressionActionListener(context.getApplication().getExpressionFactory().createMethodExpression(context.getELContext(), "#{mybackingbean.fileUploadEvent}", null, 
     new Class[] { ActionEvent.class })); 

InputFile inputFile = new InputFile(); 
inputFile.setAutoUpload(false); 
inputFile.addActionListener(meal); 
//inputFile.setActionExpression(...) - did not work 
//inputFile.setAction(..) - did not work 

parent.getChildren().add(inputFile); 

組件呈現正確,點擊上傳按鈕,瀏覽器後,發送POST請求,但我的後盾bean從未被通知。我嘗試了類似的setActionExpressionsetAction方法以將組件綁定到我的bean,但沒有任何反應。

你有任何想法如何使我的支持豆意識到文件上傳結果..?

更新

接通更多的日誌記錄我可以看到,文件上傳,這是記錄:

2011-12-07 22:12:54,097 UploadServer DEBUG - UploadServer doLifecycle :: Window00303:j_id117 in form 'Window00303' -> FileInfo: { 
    percent=100, 
    preUpload=false, 
    postUpload=false, 
    exception=null, 
    fileName=abcchmvw.INI, 
    file=[...], 
    physicalPath=[...], 
    contentType=application/octet-stream, 
    size=437, 
    status=2 
} 

我反編譯UploadServer但不能看到爲什麼我的ActionListener應該叫做。

+0

雙重檢查,該FileUploadServlet是活的,聽 – jabal

+0

BalusC,任何想法..? :-) – jabal

回答

0

的解決方案是addActionListener但所有失敗並沒有設置一個ID爲組件通過調用重要的事情setId()