JSFで使用するために、円チャートJSオブジェクトを採用しました。そうするために、適切なマークアップとJSコールをページに出力し、グラフを正しくレンダリングするカスタムコンポーネントを作成しました。参考までに、JSパートのチュートリアルではthis is the linkを参照してください。JSF2とカスタムコンポーネント - Javascriptコードからアクションを呼び出す方法
次のステップでは、スライス上のクリックをリッスンし、バッキングBeanからアクションを呼び出します。チャートのJSオブジェクトには、そのようなクリックをリッスンするプレースホルダ関数が既に含まれているため、JS部分が良好であると信じています。しかし、JSF側はまだ私をバグさせています。私はJava EEチュートリアル、Jim Driscollのブログ記事、そしてインターネット上のすべてを読んできましたが、それでも私の周りに頭を浮かべることはできません。
JSFのイベントリスナーにJS関数呼び出しをバインドする方法を少し例を挙げて説明してください。私のバッキングBeanにどのスライスインデックスがクリックされたかがうまく伝えられるようにしますユーザーは?
function myChartObject() {
function onSliceClick() {
// This will somehow trigger JSF ajax event listener with slice data
}
}
class MyCustomChart extends UIComponentBase implements ClientBehaviorHolder {
// Is the decode() method the place to bind JS calls to JSF actions?
}
私は私の問題に発見した最も近いthisのようなものです:
それは近いものになるだろう。しかし、標準のJSF APIを使用して、私自身のコンポーネントでこのサポートをしたいと思います。おそらくthisに近いものはありますか?
ありがとうございました!
私はそれの周りに方法はないと思うが、コンポーネント自体を少し簡素化しようとする。 JSチャートを見ると、スライスクリックの呼び出しはキャンバスコンポーネントに関連付けられています。作者はジオメトリを使用してクリックがスライス上にあるかどうかを識別し、イベントをトリガするJS関数を呼び出します。 JavaカスタムコンポーネントでこのJSの動作に何かをバインドするのは難しいでしょう。 – javabeats