Problema com f:setPropertyActionListener

1 resposta
F

Boa noite a todos.
Estou tendo o seguinte problema: tem um fileUpload do PrimeFaces que, ao dar o Upload, tem um listener que preenche uma lista de beans (Imagem) e dá um update em uma panel, que contém uma penalGrid que vai mostrar as fotos dessa lista de Imagem. Tudo está funcionando bem. Porém, fiz uma função para deletar tais imagens. A princípio, usei f:param, passando o nome da imagem, varrendo a lista e deletando. Porém, gostaria de usar f:setPropertyActionListener. O problema é que a primeira vez que eu clico em deletar (após dar upload de algumas fotos), a Imagem vai como null. A partir da segunda vez em diante, a Imagem sempre vai normalmente.

Segue o código:

<h:panelGrid columns="1" id="panelUpload">
	<p:growl id="messages" sticky="true" autoUpdate="true" />
	<p:fileUpload process="panelUpload" fileLimit="10" fileUploadListener="#{administracao.handleFileUpload}" mode="advanced" update="info" multiple="true" sizeLimit="5242880" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" fileLimitMessage="#{msg.fileUploadErroLimite}" cancelLabel="#{msg.fileUploadCancelarLabel}" invalidFileMessage="#{msg.fileUploadErroArquivoInvalido}" invalidSizeMessage="#{msg.fileUploadErroLimite}" label="#{msg.fileUploadChooseLabel}" />
	<h:panelGroup id="info" layout="block">
		<p:panel>
			<f:facet name="header">
				<h:outputText value="#{msg.albumFotos}" />
			</f:facet>
			<h:outputText value="#{msg.nenhumaFotoAlbum}"
				rendered="#{administracao.quantidadeFotos == 0}" />
			<p:dataGrid id="imagensAlbum" columns="2" value="#{administracao.noticia.imagens}" var="imagem">
				<p:column>
					<h:panelGrid columns="2">
						<p:outputPanel layout="block">
							<p:graphicImage id="imagemDraggable" value="#{administracao.thumbnail}">
								<f:param name="nome_imagem" value="#{imagem.nome}" />
							</p:graphicImage>
							<p:draggable for="imagemDraggable" revert="true" scope="imagem" />
						</p:outputPanel>
						<h:panelGrid columns="2">
							<h:outputText value="#{msg.nome}:" />
							<h:outputText value="#{imagem.nome}" />
							<h:outputText value="#{msg.tamanhoBytes}" />
							<h:outputText value="#{imagem.length}" />
							<p:commandButton process="info" update="formNoticia:info" image="delete" title="#{msg.deletar}" actionListener="#{administracao.deletarFoto}">
								<!-- <f:param name="nome_imagem_delete" value="#{imagem.nome}" /> -->
								<f:setPropertyActionListener value="#{imagem}" target="#{administracao.imagemDeletada}" />
							</p:commandButton>
						</h:panelGrid>
					</h:panelGrid>
				</p:column>
			</p:dataGrid>
		</p:panel>
	</h:panelGroup>
</h:panelGrid>

Agradeço desde já. :slight_smile:

1 Resposta

A

cara,

uma pergunta, seu form está nessa pagina?

t+

Criado 25 de setembro de 2011
Ultima resposta 26 de set. de 2011
Respostas 1
Participantes 2