簡體   English   中英

以編程方式配置JSF / ICEFaces InputFile

[英]Configuring JSF/ICEFaces InputFile programmatically

我從Java代碼中將一個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的原因。

解決方案是addActionListener但是所有失敗的重要事情不是通過調用setId()為組件設置id。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM