Não é possível fazer upload de arquivos no modo simples. Se quer mesmo usar ajax, vai ter que usar o modo avançado do componente.
Aqui o próprio líder do time do Primefaces diz isso: http://forum.primefaces.org/viewtopic.php?f=3&t=16260
Não é possível fazer upload de arquivos no modo simples. Se quer mesmo usar ajax, vai ter que usar o modo avançado do componente.
Aqui o próprio líder do time do Primefaces diz isso: http://forum.primefaces.org/viewtopic.php?f=3&t=16260
Gente estou com um problema. Estou tentando exibir a extensão do arquivo no método salvar do meu Bean só que toda vez lança “nullpointer”.
Eu resolvi adicionar o atributo ajax=“false” no botão que invoca o método e não lançou erro nenhum exibindo o nome do arquivo.
EU gostaria de fazer essa execução com ajax=“true” só que toda vez lança erro, tem como resolver isso de alguma forma ?
Não posso deixar o ajax do tipo false em função das validações em ajax feita no formulário.
<h:form id="formCad" prependId="false" enctype="multipart/form-data">
<p:dialog widgetVar="dialogCadLegal" showEffect="clip" showHeader="false" hideEffect="fold" height="500" width="950" modal="true" resizable="false">
<p:panel header="Formulário de Cadastro">
<br />
<center>
<p:panelGrid columns="2" style="text-align:left;">
<h:outputLabel value="Fundamento Legal : " for="clegal"/>
<h:selectOneMenu id="clegal" value="#{fundamentoMB.fundamentoLegal.tipoFundamentoLegal.codTipoFundamentoLegal}" required="true" requiredMessage="Informe o tipo de fundamento legal.">
<f:selectItem itemLabel="--- SELECIONE O FUNDAMENTO LEGAL --- " itemValue="0" />
<f:selectItems value="#{fundamentoMB.listaTipoFundamento}" var="fund" itemLabel="#{fund.desTipoFundamentoLegal}" itemValue="#{fund.codTipoFundamentoLegal}" />
</h:selectOneMenu>
<h:outputLabel value="Num. Fundamento Legal :" for="numero" />
<p:inputText id="numero" value="#{fundamentoMB.fundamentoLegal.nuFundamentoLegal}" size="38" maxlength="50" required="true" requiredMessage="Informe o número do fundamento legal." />
<h:outputLabel value="Num. Diário Oficial :" for="numOficial" />
<p:inputText id="numOficial" value="#{fundamentoMB.fundamentoLegal.nuDiarioOficial}" size="38" maxlength="50" required="true" requiredMessage="Informe o número do diário oficial." />
<h:outputLabel value="Data Fundamentação Legal : " for="dtFund" />
<p:calendar value="#{fundamentoMB.fundamentoLegal.dtFundamentoLegal}" size="38" locale="pt_BR" pattern="dd/MM/yyyy" showButtonPanel="true" navigator="true" id="dtFund" required="true" requiredMessage="Informe a data da fundamentação legal." />
<h:outputLabel value="Anexar Arquivo : " for="arq" />
<p:fileUpload id="arq" value="#{fundamentoMB.file}" mode="simple"/>
<h:outputLabel value="Descrição : " for="des" />
<p:inputTextarea id="des" value="#{fundamentoMB.fundamentoLegal.desFundamentoLegal}" cols="50" rows="12" maxlength="210" required="true" requiredMessage="Informe a descrição." />
<f:facet name="footer">
<center>
<p:commandButton update=":mensagemPrincipal" action="#{fundamentoMB.salvar}" oncomplete="if(args.sucesso == true) { dialogCadLegal.hide();}" icon="icon-check" value="Cadastrar" />
</center>
</f:facet>
</p:panelGrid>
</center>
<br />
</p:panel>
</p:dialog>
public void salvar() {
System.out.println("Type : " + file.getContentType() );
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,
"Cadastro realizado com sucesso.", ""));
RequestContext request = RequestContext.getCurrentInstance();
request.addCallbackParam("sucesso", true);
}
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</filter-mapping>