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 フォーラムの誰も私の質問に答えなかったので、私は本当に必死になっています...