Rich:fileUpload + rich:messages + a4j:support não renderiza

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.

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>

coloquei o a4j:form mas não funfa :confused: