如果我扩展它,请不要在PrimeFaces DataTable中接收事件

时间:2013-04-20 12:38:42

标签: jsf primefaces datatable

我正在扩展PrimeFaces DataTable。当我这样做时,我不再获得当我不扩展它时收到的Ajax事件。这不是我在扩展中所做的任何事情,因为我删除了覆盖的DataTable中的所有方法,但仍然没有Ajax事件。

以下是相关代码:

public class MyDataTable extends DataTable {
}

在我的faces-config.xml中:

<component>
    <component-type>org.primefaces.component.DataTable</component-type>
    <component-class>com.xxx.MyDataTable</component-class>
</component>

就是这样......在这样做之后,DataTable通常接收的事件(在我的情况下是contextMenu事件)不再被接收。除此之外,DataTable的功能似乎正常。

我是否需要做其他事情才能使事件流动?我无法弄清楚这是我正在做的事情,PrimeFaces错误还是MyFaces错误。

我获得了PrimeFaces源代码并在queueEvent(event)方法中放置了一个断点。如果我不扩展控件但是如果我扩展它就不会被击中。

我正在使用PrimeFaces 3.5和WebSphere 8.5.1附带的MyFaces 2.1.5实现。

感谢您的帮助。 PrimeFaces论坛上没有人回复我的问题,所以我真的很绝望......

1 个答案:

答案 0 :(得分:1)

我将自定义dataTable重命名为DataTable并获取Ajax事件。

public class DataTable extends org.primefaces.component.datatable.DataTable {
}