![](/img/trans.png)
[英]Which method is for binding the action callback to 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。 我也嘗試過使用外觀類似的setActionExpression
和setAction
方法將組件綁定到我的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.