Я использую Richfaces-4.3.5 на Wildfly-8.0.0.CR1 здесь, перейдя с <rich:fileUpload>
, который не работает с JSF-2.2/Servlet-3.0. Я заменить его с этим фрагментом:Как я могу отредактировать окончательную загрузку с помощью <h:inputFile>?
<rich:popupPanel id="testPop" autosized="true">
<h:form id="uploadF" enctype="multipart/form-data">
<h:inputFile value="#{bean.file}">
<a4j:ajax listener="#{bean.storeFile()}" render="@form,:fileListTbl"
oncomplete="#{rich:component('testPop')}.hide();" />
</h:inputFile>
</h:form>
</rich:popupPanel>
Это прекрасно работает в том, что метод storeFile
называется, и я могу получить доступ к bean.file
просто отлично. Тем не менее, я хотел бы закрыть rich:popupPanel
, когда я закончил загрузку, поэтому мне нужно отреагировать на успешные/полные события запроса ajax. Но это не представляется возможным - всплывающее окно остается видимым и ответ явно неполна (с отступом для лучшей читаемости):
<?xml version='1.0' encoding='UTF-8'?>
<partial-response id="j_id1">
<changes>
<update id="j_id1:javax.faces.ViewState:0">
<[CDATA[-1186354868983349335:-5499969782208038164]]>
</update>
<extension id="org.richfaces.extension"><render>@component</render></extension>
</changes>
</partial-response>
Хотя RichFaces отладочные сообщения указывают на обработчики являются называться:
RichFaces: Received 'success' event from <input id=uploadF:j_idt1136 ...>
RichFaces: Received 'complete' event from <input id=uploadF:j_idt1136 ...>
Итак, простой вопрос: как я могу получить всплывающее окно для закрытия и компоненты, которые нужно перерисовать?