我在为rich:dataTable定义绑定bean时遇到一些问题。

datatable的内容已经在XHTML中定义,我只想使用绑定稍后再读回行,以便可以将表内容导出为PDF。

在我的XHTML文件中,

<rich:dataTable ... binding="#{backingBean.tableBinding}">


然后,在我的支持bean中,声明一个成员:

import org.richfaces.component.html.HtmlDataTable;
class BackingBean {
   private HtmlDataTable tableBinding ;
   public BackingBean() {
      tableBinding = new HtmlDataTable() ;
   }
   // ... (incl. getters and setters for binding)
 } ;


但是,这导致:


  java.lang.NullPointerException
   在javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:809)


当我尝试加载页面时。除了简单地构造变量之外,我还需要对HtmlDataTable变量进行处理吗?甚至可以按照我在此处使用的方式使用binding属性吗?

最佳答案

不要在构造函数中自己创建HtmlDataTable的实例。 RichFaces将创建一个实例并将其注入到您的BackingBean中。您只需要一个公共获取者和安装者即可。

07-24 21:03