Olá,
Seguinte: estou fazendo uma página em JSF 2.0 basicamente assim: após uma seleção em um combo no topo da página, abrem-se três pares de RadioButton, cada par dando opção de edição de um campo diferente, via texto (rich:editor , do RichFaces 4) ou via upload de arquivo (descendente de javax.faces.component.html.HtmlInputText , HtmlInputFile , implementado aqui). A opção clicada abre um popup (rich:popupPanel). O detalhe é que o popup de upload, além de simplesmente não efetuar o upload (ele o faz em outras páginas do sistema), faz um reload de toda a página após o clic em “upload” (esse efeito é presente em todas as outras páginas antes implementadas), e esse reload faz todo o conteúdo da página se perder, inclusive a seleção do combo inicial - o que não é desejado, a página deveria permanecer como está, apenas com o acréscimo do arquivo (ou texto) inserido. Ah, e o texto novo q digito nesses editores simplesmente não é salvo - após o comando “salvar” os textos permanecem os carregados na seleção do combo.
Abaixo segue o código em questão:
<rich:popupPanel modal="true" id="unidadeArquivoMP" autosized="true"
rendered="#{menuMB.perfilEdicao}">
<f:facet name="header">
<h:outputText value="#{bundle.uploadUnidade}" />
</f:facet>
<f:facet name="controls">
<h:graphicImage value="/resources/images/close.jpg"
onclick="#{rich:component('unidadeArquivoMP')}.hide();"
styleClass="iconePainel" />
</f:facet>
<h:form enctype="multipart/form-data" acceptcharset="UTF-8">
<h:panelGroup id="arquivoPG">
<tcesc:inputFile id="arquivo"
value="#{restricaoMB.arquivoUnidade}" required="true" />
<div align="right">
<h:panelGrid columns="2">
<h:commandButton value="#{bundle.upload}" styleClass="botaoAcao"
action="#{restricaoMB.uploadUnidade}" />
<a4j:commandButton value="#{bundle.cancelar}"
styleClass="botaoAcao" render="@none" execute="@none"
immediate="true"
oncomplete="#{rich:component('unidadeArquivoMP')}.hide();" />
</h:panelGrid>
</div>
</h:panelGroup>
</h:form>
</rich:popupPanel>
Atenciosamente.