Não consigo encontrar solução, nem alguém com o mesmo problema que eu.
Estou utilizando o componente do FileUpload em JSF, utilizando a biblioteca primefaces-3.4.2.jar
Quando utilizava o componente se o atributo auto, na primeira vez que a página era carregada o componente não aparecia. Eu precisava recarregar o navegador para que o componente aparecesse.
Acrescentei o atributo auto e o componente começou a aparecer sempre, no entanto, na primeira vez que utilizo o componente, ele não faz nada (não chama o método que passei). A partir do segundo arquivo que eu faço upload o componente funciona normalmente.
Alguém tem alguma sugestão de como corrigir esse problema (se tiver como)?
public void validarImportacaoPeriodo(FileUploadEvent event){
String nomeArquivo = event.getFile().getFileName();
//verifica nome do arquivo
if(!nomeArquivo.contains("-PER") && !nomeArquivo.contains("-EVE")){
//arquivo não é de período nem de evento
FacesMessage msg = new FacesMessage(“Não é possível importar arquivos que não sejam de períodos ou eventos”);
FacesContext.getCurrentInstance().addMessage(null, msg);
}
else{
//arquivo de período ou evento. Chama método de importação
importarArquivo(event);
}
}
Na verdade o upload funciona. O problema é que logo da primeira vez que eu chamo não funciona.
Antes de eu utilizar o auto quando eu carregava a página, o componente não aparecia. Quando eu recarregava a página o componente aparecia.
Mudei o componente acrescentando o auto e o componente agora aparece. Mas a primeira vez que eu utilizo o FileUpload ele não faz nada.
A partir da segunda vez ele começa a funcionar normalmente.
Queria saber se isso é um problema do componente ou algum erro meu. Além disso, como eu posso fazer para que esse erro, caso seja do componente, não fique visível para o usuário, pois pode dar a falsa impressão de que a importação funcionou sem ter executado nada.