Pessoal,
Uso um componente fileUpload da biblioteca RichFaces para fazer um upload de um arquivo xls para o servidor e verificar se não há erros nesse arquivo. Caso existam erros, eu gostaria de mostrar a linha e coluna que esse erro se encontra na planilha.
Como só tenho essa informação (linha e coluna do erro) após o processamento do método PlanilhaManagedBean.importar (que é chamado pelo fileUpload por meio de uma requisição Ajax), a inteface já foi renderizada.
O código do componente está abaixo:
<rich:fileUpload id="upload"
fileUploadListener="#{PlanilhaManagedBean.importar}"
maxFilesQuantity="100"
immediateUpload="true" listHeight="130" acceptedTypes="xls"
addControlLabel="#{bundle.geralProcurarArquivo}"
ontyperejected="alert('#{bundle.geralExtensaoInvalida}')"
cancelEntryControlLabel="#{bundle.geralCancelar}"
clearAllControlLabel="#{bundle.geralLimparTudo}"
clearControlLabel="#{bundle.geralLimpar}"
doneLabel="#{bundle.geralArquivoTransferidoComSucesso}"
progressLabel="#{bundle.geralTransferindoArquivo}"
stopControlLabel="#{bundle.geralParar}"
stopEntryControlLabel="#{bundle.geralParar}"
transferErrorLabel="#{bundle.geralErroNaTransferenciaDoArquivo}" />
O atributo transferErrorLabel mostra somente uma única mensagem estática (por exemplo, ‘erro na transferência’) o que é pouco significativo para o usuário.
Já tentei colocar um <a4j:suport …> para renderizar o componente <h:messages> (vide código em anexo), mas não funciona.
Já tentei colocar um atributo do tipo String no PlanilhaManagedBean (que é escopo de sessão) que representasse a mensagem de erro (devidamente montada dinâmicamente) e depois tentei colocar
transferErrorLabel="#{PlanilhaManagedBean.mensagemDeErro}", mas não funcionou.
Alguém já usou mensagens de erro parametrizadas com o fileUpload? Se sim, como o fez?
Em anexo o arquivo de código da minha página.
Grande abraço.