Rich:fileUpload

0 respostas
E

Bom, já li vários tópicos tanto aqui como em outros forúns, mas não consegui resolver meu problema.
Porém, no listener o trecho item.getData() está vindo null. Alguém sabeeria por que?

Desde já, grato.
BEAN:

@SuppressWarnings("unchecked")
	private static Object getSessionParam(String param) {
		FacesContext context = FacesContext.getCurrentInstance();
		Map sessionMap = context.getExternalContext().getSessionMap();
		return sessionMap.get(param);
	}

	@SuppressWarnings("unchecked")
	private static void setSessionParam(String param, Object object) {
		FacesContext context = FacesContext.getCurrentInstance();
		Map sessionMap = context.getExternalContext().getSessionMap();
		sessionMap.put(param, object);
	}


	public void listener(UploadEvent event) throws Exception {
		UploadItem item = event.getUploadItem();

		this.nome = item.getFileName();
		this.tamanho = item.getFileSize();
		setArquivo(item.getData());
		setSessionParam("foto", getArquivo());
		this.size = 1;

	} 

	public void paint(OutputStream stream, Object object) throws IOException {

		byte[] foto = (byte[]) getSessionParam("foto");
		stream.write(foto);
	}

aqui é o XHTML

<h:panelGrid columns="2" columnClasses="top,top">
					<rich:fileUpload fileUploadListener="#{ClienteFace.listener}"
						maxFilesQuantity="1" id="upload" immediateUpload="true"
						acceptedTypes="jpg, gif, png, bmp" allowFlash="false">
						<a4j:support event="onuploadcomplete" reRender="info" />
					</rich:fileUpload>
					<h:panelGroup id="info">
						<rich:panel bodyClass="info">
							<f:facet name="header">
								<h:outputText value="Dados da Imagem" />
							</f:facet>
							<h:outputText value="Nenhuma imagem carregada"
								rendered="#{ClienteFace.size==0}" />
							<rich:dataGrid columns="1" value="#{ClienteFace.arquivo}"
								var="arquivo">
								<rich:panel bodyClass="rich-laguna-panel-no-header">
									<h:panelGrid columns="2">
										<a4j:mediaOutput element="img" mimeType="image/jpeg"
											createContent="#{ClienteFace.paint}"
											style="width:100px; height:100px;" cacheable="false">
										</a4j:mediaOutput>
										<h:panelGrid columns="2">
											<h:outputText value="Nome do Arquivo:" />
											<h:outputText value="#{ClienteFace.nome}" />
											<h:outputText value="Tamanho do arquivo (bytes):" />
											<h:outputText value="#{ClienteFace.tamanho}" />
										</h:panelGrid>
									</h:panelGrid>
								</rich:panel>
							</rich:dataGrid>
						</rich:panel>
						<rich:spacer height="3" />
						<br />
					</h:panelGroup>
				</h:panelGrid>

e por ultimo o web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	version="2.5">

	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>*.faces</url-pattern>
	</servlet-mapping>
	<session-config>
		<session-timeout>30</session-timeout>
	</session-config>
	<welcome-file-list>
		<welcome-file>menu.xhtml</welcome-file>
	</welcome-file-list>

	<context-param>
		<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
		<param-value>.xhtml</param-value>
	</context-param>
	<context-param>
		<param-name>facelets.DEVELOPMENT</param-name>
		<param-value>true</param-value>
	</context-param>
	<context-param>
		<param-name>com.sun.faces.validateXml</param-name>
		<param-value>true</param-value>
	</context-param>
	<context-param>
		<param-name>com.sun.faces.verifyObjects</param-name>
		<param-value>true</param-value>
	</context-param>

	<filter>
		<display-name>Ajax4jsf Filter</display-name>
		<filter-name>ajax4jsf</filter-name>
		<filter-class>org.ajax4jsf.Filter</filter-class>
	</filter>

	<context-param>
		<param-name>org.ajax4jsf.SKIN</param-name>
		<param-value>blueSky</param-value>
	</context-param>


	<filter-mapping>
		<filter-name>ajax4jsf</filter-name>
		<servlet-name>Faces Servlet</servlet-name>
		<dispatcher>REQUEST</dispatcher>
		<dispatcher>FORWARD</dispatcher>
		<dispatcher>INCLUDE</dispatcher>
	</filter-mapping>


</web-app>
Criado 27 de agosto de 2010
Respostas 0
Participantes 1