Boa tarde!Estou tendo problemas com o componente FileUpload do RichFaces, preciso que o método conteudoDigitalAction.salvarImagemAmazon() seja invocado depois do método conteudoDigitalAction.salvarArquivoInstance(), pois a tela quebra…
Coloquei acho eu nos eventos certos do componente, alguém tem alguma solução pra isso?
<rich:fileUpload id="idArquivoUpload"
fileUploadListener="#{conteudoDigitalAction.salvarArquivoInstance}"
addControlLabel="Selecionar novo arquivo"
clearAllControlLabel="Limpar tudo" clearControlLabel="excluir"
doneLabel="carregado" cancelEntryControlLabel="cancelar"
stopControlLabel="Parar" stopEntryControlLabel="parar"
transferErrorLabel="Erro na transferência do arquivo - Função não suportada pelo IE9"
onupload="#{rich:component('panelUploadImagem')}.show();"
onclear="javascript:reRenderUploadArquivos()"
onufileploadcomplete="#{conteudoDigitalAction.salvarImagemAmazon()};
javascript:reRenderComboArquivos();"
immediateUpload="false" listHeight="60px" listWidth="901px"
style="height: 150px;" />
</s:decorate>
<a4j:jsFunction name="reRenderComboArquivos"
reRender="comboArquivos"
oncomplete="#{rich:component('panelUploadImagem')}.hide();"></a4j:jsFunction>
Desde já agradeço.
Alguém que tenha vivência em RichFaces e Ajax??
Bom dia!
Tem um método escrito errado. Tente onfileuploadcomplete ao invés de onufileploadcomplete.
Abraço!
Boa tarde elio.cruz!
Agora eu mudei meu componente fileUpload, mas mesmo assim o erro permanece, e pior nem está chamando o primeiro método.
Estou usando JBoss Seam.
<rich:fileUpload id="idArquivoUpload"
addControlLabel="Selecionar novo arquivo"
clearAllControlLabel="Limpar tudo" clearControlLabel="excluir"
doneLabel="carregado" cancelEntryControlLabel="cancelar"
stopControlLabel="Parar" stopEntryControlLabel="parar"
transferErrorLabel="Erro na transferência do arquivo
- Função não suportada pelo IE9"
fileUploadListener="#{conteudoDigitalAction.salvarArquivoInstance()}"
onclear="javascript:reRenderUploadArquivos()"
onupload="#{conteudoDigitalAction.salvarArquivoAmazon()};
#{rich:component('panelUploadImagem')}.show();"
onuploadcomplete="javascript:reRenderComboArquivos();"
immediateUpload="false" listHeight="60px" listWidth="901px"
style="height: 150px;" />
Tem alguma idéia?
Já tentei de tudo praticamente…
Achei a solução!
Para executar métodos de forma sincronizada, é preciso usar o atributo eventQueue, com isso posso enfileirar meus métodos, fazendo com que eles sejam executados separadamente e na ordem imposta.
Como no exemplo,
Apenas, declaro o atributo eventsQueue=“Fila”:
<a4j:jsFunction name="reRenderComboArquivos"
eventsQueue="Fila"
reRender="comboArquivos"
oncomplete=" #{conteudoDigitalAction.salvarArquivoAmazon()};
#{rich:component('panelUploadImagem')}.hide();"
/>