У меня есть код InputFile, помещенный в мою форму из кода Java, например:
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, но мой компонент поддержки никогда не уведомляется,Я также попробовал похожие методы setActionExpression
и setAction
, чтобы связать компонент с моим компонентом, но ничего не происходит.
Есть ли у вас какие-либо идеи, как заставить мой компонент поддержки знать результат загрузки файла?..?
Обновлено
Включение дополнительной регистрации Я вижу, что файл загружен, и это записывается:
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 должен вызываться.