Какой метод предназначен для привязки обратного вызова действия к JSF/ICEFaces InputFile?

Я хотел бы привязать метод к моему объекту com.icesoft.faces.component.inputfile.InputFile, чтобы он вел себя так, как если бы он был определен так:

<ice:inputFile id="inputFileComponent" actionListener="#{mainWindowManager.uploadActionListener}"

Я создаю экземпляр InputFile, но вижу несколько методов, и ни один из них не работает.. :-(

com.icesoft.faces.component.inputfile.InputFile inputFile = new InputFile();

inputFile.addActionListener(..);
inputFile.setActionListener(..);
inputFile.setActionExpression(..);
inputFile.setAction(..);

Какой метод используется для привязки, описанной в приведенном выше XML?


person jabal    schedule 07.12.2011    source источник


Ответы (2)


Метод, запускаемый при выборе файла на диске, должен иметь следующую подпись:

public void uploadActionListener(ActionEvent e){}

Однако для ice:inputFile есть дополнительный параметр с именем «autoUpload». Если установлено значение true, отправка файла должна выполняться сразу же после выбора файла на диске (если это то, что вы хотите сделать).

Вот как это выглядит в одном из моих проектов:

<ice:inputFile autoUpload="true" actionListener="#{myBean.myMethod}" submitOnUpload="postUpload" immediate="true" />

Когда пользователь выбирает файл, действие запускается немедленно, и форма отправляется. Надеюсь, поможет.

person Wis    schedule 12.12.2011
comment
Я не об этом спрашивал. Я спросил о методе привязки, а не о привязке. Пожалуйста, внимательно читайте вопросы, прежде чем отвечать. - person jabal; 12.12.2011
comment
Правда, я его пропустил, как бы он себя ни вел. Взгляните на stackoverflow.com/questions/4532955/ находится в inputText, но должен быть очень похож. - person Wis; 13.12.2011

Победителем стал setActionListener(..), но я пропустил установку идентификатора для компонента, из-за этого весь беспорядок.

person jabal    schedule 16.12.2011