Boa tarde,
Estou utilizando jsf e rich:dataTable para fazer uma lista de tarefas, sendo que esta lista (quando selecionada) é gera um arquivo para download. A primeira seleção funciona perfeitamente, porém a partir da segunda seleção a lista utiliza o próximo registro (seleciona um e internamente escolhe o segundo). Percebi que o problema ocorre no momento de gerar o arquivo, pois se eu tirar esta função (de gerar o arquivo) a seleção permanece normal, segue abaixo o código para a visualização.
</f:facet>
<h:outputText value="#{f.idCar}"></h:outputText>
</h:column>
<h:column>
<h:commandLink accesskey="cdcarri" title="#{f.cnpjCar}" actionListener="#{cotacaoBean.gerarCsv}">
<h:graphicImage library="imagens" name="excel.png" />
<f:param id="cnpjCar" name="id" value="#{f.cnpjCar}" />
<f:param id="idCotac" name="idcot" value="#{f.idCar}" />
</h:commandLink>
</h:column>
</rich:dataTable>
Código do Bean
public void gerarCsv(ActionEvent event) throws IOException {
UIComponent link = event.getComponent();
UIParameter param = (UIParameter) link.findComponent("cnpjCar");
String cnpj = param.getValue().toString();
UIParameter param2 = (UIParameter) link.findComponent("idCotac");
int nrCot = Integer.parseInt(param2.getValue().toString());
FuncoesCarrRN car = new FuncoesCarrRN();
String nomeArquivo = car.gerarCSV(cnpj, nrCot);
FacesContext fc = FacesContext.getCurrentInstance();
OperacoesArquivos.downloadFile(nomeArquivo, "", "text/csv", fc);
}
No momento de gerarCSV, quando cria o arquivo para depois fazer o download ocorre o erro.
Obrigado a todos