2013-07-02 4 views
0

맞춤형 PDF 내보내기를 구현하고 있지만 뷰에서 내 백킹 빈으로 데이터 테이블을 전달해야하지만 어떻게 해야할지 잘 모릅니다. 내가 같이하려고하는 CommandLink는있을 것이다 뷰에 어떻게 뷰에서 백킹 빈으로 매개 변수로 DataTable을 전달할 수 있습니까?

는 :

<h:commandLink action="#{procesos.exportPDF(mytable , 'procesos')}"> 
    </h:commandLink> 

이 매개 변수로 DataTable을 수신하는 방법입니다 : 어쨌든

public void exportPDF(DataTable table, String filename) throws IOException { 
     FacesContext context = FacesContext.getCurrentInstance(); 
     Exporter exporter = new CustomPDFExporter(); 
     exporter.export(context, table, filename, false, false, "iso-8859-1", null, null); 
     context.responseComplete(); 
    } 

.. Dataexporter와 primefaces의 익스텐터 확장이 그 기능을 허용하지 않기 때문에 custom PDFf 익스포터로 열 너비를 수정하는 것이 좋습니다. 누군가가 알거나 커스텀 pdf 수출업자가 있으면 그걸 조금이라도 보여 주면 좋을 것입니다. 비트 (더 나은 모든) 코드 :)!

감사합니다.

답변

2

동일한 문제가있었습니다. 테이블을 직접 통과하지 못했습니다. 방금 양식 및 표의 ID를 전달하고 findComponent를 사용했습니다.

FacesContext context = FacesContext.getCurrentInstance(); 
UIViewRoot viewRoot = context.getViewRoot(); 

// find table by form- and table-id 
UIComponent component = viewRoot.findComponent(formId).findComponent(tableId); 
DataTable table = (DataTable) component;