如何将DataTable作为参数从视图传递到辅助bean?

时间:2013-07-02 02:40:28

标签: jsf-2 primefaces datatable parameter-passing exporter

我正在实现一个自定义pdf导出器,但我需要将我的数据表从视图传递到我的支持bean,但我不知道该怎么做。

在视图中我将有一个看起来像这样的命令链接:

  <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和primefaces的导出器扩展不允许该函数,所以如果有人知道或有一个自定义pdf导出器允许它将是非常感谢能够展示一些(更好的全部)代码:)!

感谢。

1 个答案:

答案 0 :(得分: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;