Boa noite a todos, estou com o seguinte problema no relatório, eu tenho a classe ReportUtils, tenho uma jsp com um datatable, em cada linha existe um commandLink para gerar o relatório com aquele argumento , no caso o ID, só que todas vez aparece todos os dados da datatable, o código está da seguinte forma:
ReportUtils.java
public String ImprimirRel(Object key, Object Value){
Conn = HibernateUtil.getInstance().getSession().connection();
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
ServletContext servletContext = (ServletContext) context.getExternalContext().getContext();
Map param = new HashMap();
param.put(key,Value);
//param.put(, this)
String realPath = servletContext.getRealPath("./" + "relatorios") + "/";
String relatorioJasper = "processo.jasper" ;
try{
JasperPrint print = JasperFillManager.fillReport(realPath + relatorioJasper, param,Conn);
response.setContentType("application/pdf");
byte x1[] = JasperExportManager.exportReportToPdf(print);
response.getOutputStream().write(x1);
}catch (JRException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}finally{
conn.close();
}
FacesContext.getCurrentInstance().responseComplete();
return "";
}
relatorio.jsp
<rich:dataTable value="#{ProcessoFaces.listOfProcess}" var="proc" rows="20" reRender="ds" id="simpletableproc">
.
.
.
<rich:column>
<h:commandLink value="Gerar relatorio" action="#{ProcessoFaces.gerarRelProcesso()}" >
<f:setPropertyActionListener target="#{ProcessoFaces.selectedProcesso}" value="#{proc}"/>
</h:commandLink>
</rich:column>
ProcessoFaces.java
public void gerarRelProcesso() throws IOException , ClassCastException, NullPointerException{
try{
selectedProcesso = processDAO.getProcess(selectedProcesso.getId());
new ReportsUtil().ImprimirRel(selectedProcesso,selectedProcesso.getId());
}catch (Exception e){
JOptionPane.showMessageDialog(null, "Não foi possível gerar relatório");
e.printStackTrace();
JOptionPane.showMessageDialog(null, e);
}
}