kelvis
Dezembro 28, 2012, 10:04am
#1
pessoALL…
Ao fazer upload de uma imagem com o componente rich:fileUpload eu uso um a4j:support para renderizar uma mensagem de alerta que a foto excede o tamanho máximo permitido, mas ele não dá re-Render de jeito nenhum =/
Ai vai o código:
<h:panelGrid id="foto" columns="3">
<a4j:outputPanel id="fotoUpload">
<a4j:outputPanel rendered="#{eventoFotoControle.verificaSePesquisouMilitarouPessoa}">
<h:outputText value="Foto :"/>
<rich:fileUpload fileUploadListener="#{eventoFotoControle.carregarFoto}"
id="upload"
immediateUpload="true" ajaxSingle="true"
acceptedTypes="jpg, jpeg, gif, png"
listHeight="59px" noDuplicate="true" allowFlash="false"
addControlLabel="Carregar Foto..."
cancelEntryControlLabel="Cancelar"
doneLabel="Pronto"
progressLabel="enviando..."
stopControlLabel="Parar"
stopEntryControlLabel="Parar"
transferErrorLabel="Erro ao transferir"
maxFilesQuantity="1"
autoclear="true"
clearControlLabel="Limpar"
clearAllControlLabel="Limpar">
<a4j:support event="onuploadcomplete" ajaxSingle="true" reRender="info,fotoUpload,msgs,pnl3x4" />
</rich:fileUpload>
</a4j:outputPanel>
</a4j:outputPanel>
</h:panelGrid>
a exceção é lançada no meu método carregarFoto do fileUploadListner… Já debuguei e chega lá certinho, mas não renderiza a mensagem =/
Apresenta ai todo o corpo com o componente rich:fileUpload . Não consegui ver seus componentes reRender=“info,fotoUpload,msgs,pnl3x4” (info, msgs, e pnl3x4)
Acredito que você não esteja usando um a4j:form mais de toda forma vou colocar como eu fiz pra você analisar.
<a4j:form id="frmImportacao">
<rich:fileUpload id="upload"
addControlLabel="Selecionar arquivo..."
clearAllControlLabel="Limpar Todos"
clearControlLabel="Limpar"
cleanButtonClassDisabled="false"
cancelEntryControlLabel="Cancelar"
progressLabel="Carregando..."
stopControlLabel="Parar"
uploadControlLabel="Importar"
doneLabel="Importação Finalizada!"
listHeight="50px"
autoclear="false"
maxFilesQuantity="1"
immediateUpload="false"
acceptedTypes="csv"
allowFlash="#{ManterImportacao.useFlash}"
fileUploadListener="#{ManterImportacao.listener}"
styleClass="upload"
rendered="#{ManterImportacao.ascSelecionada != 0 and ManterASC.asc.num_contrato_cff != 0}">
<f:facet name="label">
<h:outputText value="{_KB}KB para {KB}KB uploaded --- {mm}:{ss}" />
</f:facet>
<a4j:support event="onuploadcomplete" id="uploadCompleto" reRender="painelTotalizador,listErros" />
<a4j:support event="onclear" action="#{ManterImportacao.limparDados}" reRender="frmImportacao,listErros"/>
</rich:fileUpload>
</a4j:form>
<a4j:form id="listErros">
<h:panelGrid id="painelTotalizador" styleClass="importacao" rendered="#{ManterImportacao.totalizador != 0 }" columns="2">
<h:outputText value="Total de Registros:" styleClass="th" />
<h:outputText value="#{ManterImportacao.totalizador}"/>
<h:outputText value="Inseridos:" styleClass="th" />
<h:outputText value="#{ManterImportacao.totalizadorSucesso}"/>
<h:outputText value="Erros:" styleClass="th" />
<h:outputText value="#{ManterImportacao.totalizadorErro}"/>
</h:panelGrid>
</a4j:form>
Eu meio dei umas mastigada aqui em algumas partes… mais acredito que isso já ajude a você ter uma ideia geral.
kelvis
Janeiro 3, 2013, 3:19pm
#6
Ai surfzera, devido as festas de fim de ano peguei umas folgas aqui, mas já estou de volta…
Então, realmente não estou usando o a4j:form … vou tentar com esse form e posto o resultado…
De qualquer forma ai vai meu código da forma como está hoje:
<h:form id ="formFoto">
<ui:include src="/paginas/mensagem/modalMensagens.xhtml" />
<rich:panel>
<ui:include src="/paginas/componentes/caminho_cabecalho.xhtml" />
<a4j:region >
<ui:include src="/paginas/evento/escolaFormacao/pesquisaAlunoIndividual.xhtml">
<ui:param name="pgNomePainel" value="fotoUpload,pgFoto,opFotoAtual,pnl3x4,outPutFotoAtual" />
<ui:param name="posicaoMilitar" value="0" />
<ui:param name="mostraTitulo" value="#{true}" />
</ui:include>
</a4j:region>
<rich:separator></rich:separator>
<rich:spacer height="3px"></rich:spacer>
<a4j:outputPanel id="pnl3x4">
<a4j:outputPanel>
<h:panelGrid columns="2">
<a4j:outputPanel id="opFotoAtual">
<a4j:outputPanel>
<rich:panel rendered="#{eventoFotoControle.verificaSePesquisouMilitarouPessoa}">
<h:outputText class="output-01" value="Foto atual:" />
<h:panelGrid columns="1" id="pgFoto" style="width:120px; height:150px;">
<a4j:mediaOutput element="img"
mimeType="image/jpeg"
createContent="#{eventoFotoControle.fotoAtual}"
value="#{eventoFotoControle.pessoa.identificadorCod}"
style="width:100px; height:100px;"
cacheable="false"
session="false"
standby="Carregando foto..." id="outPutFotoAtual">
</a4j:mediaOutput>
</h:panelGrid>
</rich:panel>
</a4j:outputPanel>
</a4j:outputPanel>
<rich:panel id="info" rendered="#{eventoFotoControle.verificaSePesquisouMilitarouPessoa}">
<h:outputText class="output-01" value="Nova Foto:"/>
<h:panelGrid columns="2" style="width:120px; height:150px;">
<s:graphicImage value="#{eventoFotoControle.eventoFoto.fotoMilitar}"></s:graphicImage>
<h:panelGrid id="dadosArquivo" columns="2" rendered="#{eventoFotoControle.item != null}">
<h:outputText class="output-01" value="Arquivo:" />
<h:outputText value="#{eventoFotoControle.item.fileName}" />
<h:outputText class="output-01" value="Tamanho(bytes):" />
<h:outputText value="#{eventoFotoControle.item.fileSize}" />
</h:panelGrid>
</h:panelGrid>
<a4j:support event="onload" ajaxSingle="true" reRender="info,msgs,pnl3x4" />
<a4j:commandButton action="#{eventoFotoControle.removerFoto}" reRender="info,fotoUpload" value="Remover" rendered="#{eventoFotoControle.item != null}"/>
</rich:panel>
</h:panelGrid>
<h:panelGrid id="foto" columns="3">
<a4j:outputPanel id="fotoUpload">
<a4j:outputPanel rendered="#{eventoFotoControle.verificaSePesquisouMilitarouPessoa}">
<h:outputText value="Foto :"/>
<rich:fileUpload fileUploadListener="#{eventoFotoControle.carregarFoto}"
id="upload"
immediateUpload="true" ajaxSingle="true"
acceptedTypes="jpg, jpeg, gif, png"
listHeight="59px" noDuplicate="true" allowFlash="false"
addControlLabel="Carregar Foto..."
cancelEntryControlLabel="Cancelar"
doneLabel="Pronto"
progressLabel="enviando..."
stopControlLabel="Parar"
stopEntryControlLabel="Parar"
transferErrorLabel="Erro ao transferir"
maxFilesQuantity="1"
autoclear="true"
clearControlLabel="Limpar"
clearAllControlLabel="Limpar">
<a4j:support event="onuploadcomplete" ajaxSingle="true" reRender="info,fotoUpload,msgs,pnl3x4" />
</rich:fileUpload>
</a4j:outputPanel>
</a4j:outputPanel>
</h:panelGrid>
<h:commandButton action="#{eventoFotoControle.salvarSIPOPIP()}" value="Salvar"
styleClass="botao_Off" onmouseover="className='botao_On'" onmouseout="className='botao_Off'" />
<h:commandButton action="PAGINA_CADASTRAR_FOTO" value="Novo"
id="btnNovoFoto" styleClass="botao_Off" onmouseover="className='botao_On'" onmouseout="className='botao_Off'">
</h:commandButton>
<rich:spacer height="10px" />
</a4j:outputPanel>
</a4j:outputPanel>
</rich:panel>
</h:form>
kelvis
Janeiro 3, 2013, 4:41pm
#7
coloquei o a4j:form mas não funfa