Problema com componente FileUpload do Primefaces

448 views
Skip to first unread message

Livia Santos

unread,
Sep 26, 2011, 8:52:22 AM9/26/11
to jav...@googlegroups.com
Oi pessoal, 

Estou com um problema na utilização do componente FileUpload do Primefaces 2.2.1.

Em uma tela, uso esse componente sem problemas.

Mas em outra, de início, o componente se apresenta corretamente. Porém, após o primeiro erro na tela (por exemplo, algum campo obrigatório não preenchido), ele perde o seu estilo, e aparece como um campo normal, um botão com value "Choose File" e ao lado um label "No file chosen".

Alguém já teve algum tipo de problema assim? Parece que ele perde as configurações iniciais. :(

Obrigada!

--
[]s
Lívia Silva Santos

Donizete Waterkemper

unread,
Sep 26, 2011, 12:27:59 PM9/26/11
to jav...@googlegroups.com
Boa tarde,

Nunca tive esse problema. Mas imagino que o componente está perdendo, ou melhor, sendo alterada a classe CSS durante o processo de validação dos campos da página. Isso vc pode verificar com o FireBug, no Mozilla, por exemplo.


Att,
Donizete

--
Você recebeu esta mensagem por que é membro do Javasf
http://groups.google.com/group/javasf
 
Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil

Livia Santos

unread,
Sep 26, 2011, 1:32:18 PM9/26/11
to jav...@googlegroups.com
Nossa, tá difícil descobrir o problema. Não lança nenhuma mensagem de erro e perde totalmente o estilo.

Olha só o código de teste, onde está acontecendo o mesmo erro:

<ui:define name="mainContent">
<p:outputPanel id="mainOutputPanel">
<h:form id="testeForm">
<p:messages id="msgs" showDetail="false" />
<h:panelGrid columns="2">
<h:outputText value="Nome:"></h:outputText>
<p:inputText value="#{testeBean.nome}" required="true"
requiredMessage="Informe o campo!!!"></p:inputText>
<h:outputText value="Arquivo:"></h:outputText>
<p:fileUpload allowTypes="*.doc" auto="true"
description="Arquivos Doc"
fileUploadListener="#{testeBean.handleUpload}" label="Selecionar"
multiple="false" update="pnlNomeArquivo"></p:fileUpload>
</h:panelGrid>
<p:outputPanel id="pnlNomeArquivo">
<h:outputText value="#{testeBean.nomeArquivo}"></h:outputText>
</p:outputPanel>
<p:commandButton value="#{messages.buttonCreate}"
action="#{testeBean.create}" update="mainOutputPanel"></p:commandButton>
</h:form>
</p:outputPanel>
</ui:define>

Quando entro a primeira vez na tela, aparece tudo certinho. Se clico no botão sem preencher o campo obrigatório, perde-se o estilo do campo file upload e ele não funciona mais!!!!!

Vou ver o css.

Obrigada!
Lívia

2011/9/26 Donizete Waterkemper <dwa...@gmail.com>

Lessandro Notaroberto Pyrâmides

unread,
Sep 26, 2011, 2:13:03 PM9/26/11
to jav...@googlegroups.com
Já configurou o seu web.xml? Para o FileUpload funcionar existe uma configuração necessária lá.
Outra coisa importante que deve ser checada é a versão que vc está utilizando do primefaces,
digo isto porque estou esbarrando com bugs que existem numa versão e em outras não. Coisas
que funcionavam na versão anterior páram de funcionar na mais recente, e outras que funcionam
na mais recente, não funcionam na anterior.
Abs,
Lessandro

-----------------------------------------------------------------------------------------------------
Lessandro Notaroberto Pyrâmides
Analista de Sistemas Java Web, Desktop, Mobile e .NET

Cursando MBA em Gestão de Projetos em TI – Universidade Federal de Juiz de Fora
MSN: lessa...@hotmail.com
Emails: lessandron...@gmail.com / lessa...@hotmail.com
Tels: +55 (32) 8871-3868 / (32) 3213-6295
Juiz de Fora - MG
-----------------------------------------------------------------------------------------------------


Livia Santos

unread,
Sep 26, 2011, 3:11:54 PM9/26/11
to jav...@googlegroups.com
Olá Lessandro, 

Pois é, estou acompanhando o pessoal com alguns problemas em versões diferentes...

Como falei no email, estou usando a versão 2.2.1, a última stable, e esse componente já funciona em outra tela que tenho.

O que consegui reparar é esse erro de Javascript:

Error: document.getElementById(PrimeFaces.VIEW_STATE) is null
Source File: http://<ip>:<port>/<context>/javax.faces.resource/core/core.js.jsf?ln=primefaces&v=2.2.1
Line: 1

E, em algum lugar, li que esse component FileUpload não funciona se ocorrer algum erro de javascript. Ou seja, porque diabos acontece esse erro? :(
Bem, agora só falta descobrir isso eheheheh.

Obrigada
[]s
Lívia.

2011/9/26 Lessandro Notaroberto Pyrâmides <lessandron...@gmail.com>

Livia Santos

unread,
Sep 27, 2011, 8:01:02 AM9/27/11
to jav...@googlegroups.com
Pessoal, 

Ontem eu descobri porque estava dando erro, mas sinceramente não entendi!

Só voltou a funcionar quando eu deixei mostrando o menu da aplicação, por causa do form do menu! Mudei o rendered para false (pois nessa tela, não preciso de menu) e voltou a funciona! o.O

Sinceramente, não entendi porque estava dando aquele erro quando só tinha um form na tela!!!!

[]s
Lívia.

2011/9/26 Livia Santos <liviasil...@gmail.com>

Thiago Augusto

unread,
Sep 17, 2013, 4:20:57 PM9/17/13
to jav...@googlegroups.com
Cara estou com este mesmo erro já faz dois dias.

Sera que poderia postar sua classe Java seu faces-config e seu xhtml?

Estou tentando inputa o nome do arquivo em um <p:inputText>, mas não consigo já utilizei <h:outputText>, mas também não funcionou.

Alberto .

unread,
Sep 23, 2013, 8:20:54 PM9/23/13
to Grupo Java
Rapazes.. não tenho certeza, mas talvez o form esteja assim:

<h:form enctype="multipart/form-data">

Dai acho que não funciona mesmo essas entradas...


Date: Tue, 17 Sep 2013 13:20:57 -0700
From: thiag...@gmail.com
To: jav...@googlegroups.com
Subject: [javasf] Re: Problema com componente FileUpload do Primefaces
--
Você está recebendo esta mensagem porque se inscreveu no grupo "javasf: JavaServer Faces Group" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para javasf+un...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/javasf.
Para ver esta discussão na web, acesse https://groups.google.com/d/msgid/javasf/81124dbf-5e53-460f-a895-2756ca14227e%40googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply all
Reply to author
Forward
0 new messages