RichFaces 4 を使用しています。flot を JQuery Charting ライブラリとして使用しており、AJAX を介して更新を続けるチャートを実装したいと考えています。
バッキング Bean から JSON 経由でグラフのデータを取得します。
バッキング Bean から JavaScript 変数に新しいデータを取得する方法がわかりません。私が理解していること<f:ajax>
から、ユーザーの操作がなく、html 入力要素が使用されていないため、使用できません。
を使うのが解決策だと思いますjsf.ajax.request
。しかし、入力要素なしでそれを呼び出す方法もわかりません。
以下は、どのように見えるかを抜粋したコードですが、バッキング Bean から JavaScript 変数に値を取得する方法がわかりません。
$(function() {
function update(){
//**dont know how this call should look like**
jsf.ajax.request('dev-form-input1', {render:'dev-form-output1'});
//'newAjaxData' would be the value from #{someBean.chartData}
plot.setData(newAjaxData);
// draw the chart with the new data
plot.draw();
//get an update every second
setTimeout(update, 1000);
}
いくつかの入力要素を使用するときに、jsf.ajax.request で AJAX リクエストを送信できましたが、レンダリングする新しい値を取得できませんでした。そして、たとえ私がそれをjavascript変数で取得するのが難しいか分からなかったとしても(私はjavascriptの経験があまりありません)。
<h:form id="dev-form">
<h:inputText id="input1" value="#{someBean.chartData}"/>
<h:outputText id="output1" value="#{someBean.chartData}" />
</h:form>
注:jqueryには「:」が必要なので、javax.faces.SEPARATOR_CHARを「-」に変更しました。
ご協力いただきありがとうございます!