2013-07-02 3 views
0

Я реализую пользовательский экспортер PDF, но мне нужно передать мой datatable из представления в мой бэк-файл, но я не знаю, как это сделать.Как я могу передать DataTable в качестве параметра из вида в being bean?

в представлении я буду иметь commandlink, который будет выглядеть следующим образом:

<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(); 
    } 

все равно .. то, что я хочу сделать, - это изменить ширину столбца с помощью custompdf-экспортера, поскольку dataexporter и расширение экспортеров не позволяют этой функции, поэтому, если кто-то знает или имеет собственный экспортер PDF, который позволяет, что было бы очень приятно показать немного бит (лучше всего) кода :)!

спасибо.

ответ

2

У меня была та же проблема. Я не передал таблицу напрямую. Я только что прошел идентификаторы формы и таблицы и использовал 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;