Кой метод е за обвързване на обратното извикване на действие към 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